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

INSERT の代わりにUPDATEステートメントを使用する必要があります。

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 に答える