首先对不起我的英语:(我正在制作一个从moodle访问信息的Python程序。但是访问服务器的sql非常慢,我需要优化sql,如下所示:
try:
query1 = "SELECT id FROM mdl_user WHERE username= ('%s')" % (self.searchuser2)
cursor.execute(query1)
linhas = cursor.fetchall()
for row in linhas:
self.userid = row[0]
# Pegando enrol_id do curso
query2 = "SELECT id FROM mdl_enrol WHERE courseid = %s AND enrol = 'manual'" % (self.rowidcourse)
cursor.execute(query2)
linhas = cursor.fetchall()
for row in linhas:
self.enrol_courseid = row[0]
# Inserindo o aluno e curso em mdl_user_enrolments
query3 = "INSERT INTO mdl_user_enrolments (status, enrolid, userid, timestart, timeend, timecreated, timemodified) VALUES(0, %s, %s, 1, 0, 1, 1)" % (
self.enrol_courseid, self.userid)
cursor.execute(query3)
mariadb_connection.commit()
# Pegando contex_id do curso e aluno
query4 = "SELECT id FROM mdl_context WHERE instanceid=%s AND contextlevel=50" % (self.rowidcourse)
cursor.execute(query4)
linhas = cursor.fetchall()
for row in linhas:
self.contexid = row[0]
# Inserindo aluno no curso
query5 = "INSERT INTO mdl_role_assignments (roleid,contextid,userid,timemodified) VALUES (5,%s,%s,2000)" \
% (self.contexid, self.userid)
cursor.execute(query5)
mariadb_connection.commit()
closedb()
tkinter.messagebox.showinfo("Muito bem!", "Aluno cadastrado com sucesso.", parent=self.register1)