Python 在满足其他两个条件的表中插入

Python 在满足其他两个条件的表中插入,python,sqlite,Python,Sqlite,在我的程序中,教师用户创建一个类并将其添加到数据库中。然后,他们输入学生的全名,并在数据库中对其进行拆分和搜索。如果找到,将在学生行中插入类名。我在将类名插入到first和lastname的值与老师输入的值相同的位置时遇到问题 这是为用户创建表的代码: c.execute("""CREATE TABLE IF NOT EXISTS users ( UserID text PRIMARY KEY, FName text, SN

在我的程序中,教师用户创建一个类并将其添加到数据库中。然后,他们输入学生的全名,并在数据库中对其进行拆分和搜索。如果找到,将在学生行中插入类名。我在将类名插入到first和lastname的值与老师输入的值相同的位置时遇到问题

这是为用户创建表的代码:

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

您不需要
INSERT
语句,而是
UPDATE

UPDATE users SET ClassName = ? WHERE FName = ? AND SName= ?;

什么是ClassID?如果已经找到该学生,为什么要插入另一行?不仅如此,要插入的列列表只是一个列,而且值列表包含三个SQL参数。该查询还总共有5个SQL参数(
),但元组中只有3个值。这就是不合情理。