В моей программе пользователь учитель создает класс, и он добавляется в базу данных. Затем они вводят полное имя учащегося, где оно разделяется и ищется в базе данных. Если найден, имя класса вставляется в строку студентов. У меня возникают проблемы при вставке имени класса, где значения имени и фамилии совпадают со значениями, введенными учителем.
Это код для создания таблицы для пользователей:
c.execute("""CREATE TABLE IF NOT EXISTS users (
UserID text PRIMARY KEY,
FName text,
SName text,
username text,
password varchar,
userType text,
ClassName text,
FOREIGN KEY ("ClassName") REFERENCES "ClassInfo"("ClassName"));""")
Этот код используется для вставки имени класса в таблицу для ученика. Это работает до последней команды, где я пытаюсь вставить.
studentname = (var_studname.get())
conn = sqlite3.connect('MyComputerScience.db')
print (studentname)
c = conn.cursor()
firstName, lastName = studentname.split(" ")
c.execute ("SELECT * FROM users WHERE FName = ? AND SName= ? AND usertype = 'Student'", (firstName, lastName,))
results = c.fetchall()
if len(results) == 0:
Label(screen6, text = "Student doesn't exist!", fg="RED").place(relx=0.101, rely=0.725, height=21, width=194)
else:
Label(screen6, text = ""+firstName+" Added!", fg="Green").place(relx=0.101, rely=0.725, height=21, width=194)
var_inserttoclass = (var_classname.get(), firstName, lastName, )
c.execute('insert INTO users (ClassID) WHERE FName = ? AND SName= ? VALUES (?,?,?);', var_inserttoclass)
conn.commit()
Это ошибка, которую я получаю:
c.execute('insert INTO users (ClassID) WHERE FName = ? AND SName= ? VALUES (?,?,?);', var_inserttoclass)
sqlite3.OperationalError: near "WHERE": syntax error