2013-10-02 3 views
0

У меня есть простой кусок кода, чтобы обновить строку в sqlite:SQLite ошибка в Python

def UpdateElement(new_user,new_topic): 
    querycurs.execute('''INSERT into First_Data (topic) values(?) WHERE user = (?)''',([new_topic], [new_user])) 

Однако, это дает мне ошибку:

Traceback (most recent call last): 
    File "C:/Python27/Database.py", line 40, in <module> 
    UpdateElement("Abhishek Mitra","Particle Physics") 
    File "C:/Python27/Database.py", line 36, in UpdateElement 
    querycurs.execute('''INSERT into First_Data (topic) values(?) WHERE user = (?)''',([new_topic],[new_user])) 
OperationalError: near "WHERE": syntax error 

ответ

4

Вы должны используя UPDATE заявление вместо INSERT:

def UpdateElement(new_user,new_topic): 
    querycurs.execute('''UPDATE First_Data 
         SET topic = ? 
         WHERE user = ?''', (new_topic, new_user)) 
0

Проблема возникает из-за использования круглых скобок и отправки в new_user как массив, я верю. Значения - это массив, пользователь - нет.

Вы хотите что-то вроде:

cur.execute("UPDATE table SET value=? WHERE name=?", (myvalue, myname)) 

Но да, UPDATE звучит как то, что вы хотели в первую очередь.

Смежные вопросы