0

我有一段简单的代码来更新一行sqlite

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

2 回答 2

4

您应该使用UPDATE语句而不是 INSERT:

def UpdateElement(new_user,new_topic):
    querycurs.execute('''UPDATE First_Data 
                         SET topic = ? 
                         WHERE user = ?''', (new_topic, new_user))
于 2013-10-02T17:44:27.577 回答
0

我相信,问题出在使用括号并将 new_user 作为数组发送。值是一个数组,用户不是。

你想要这样的东西:

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

但是,是的,UPDATE 听起来就像你一开始想要的。

于 2013-10-02T17:45:52.120 回答