user2834165
user2834165

Reputation: 393

SQLite error in Python

I have a simple piece of code to update a row in sqlite:

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

However, this gives me the error:

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

Upvotes: 0

Views: 65

Answers (2)

C Reese
C Reese

Reputation: 78

The problem arises from the use of the parentheses and sending in new_user as an array, I believe. Values is an array, user is not.

You want something like:

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

But yes, UPDATE sounds like what you wanted in the first place.

Upvotes: 0

mechanical_meat
mechanical_meat

Reputation: 169274

You should be using an UPDATE statement instead of INSERT:

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

Upvotes: 3

Related Questions