在python中更新数据库中的数据

时间:2015-12-04 03:21:01

标签: python python-3.x

所以我需要更新数据库中的数据,但我得到一个我不明白的错误。我拥有的是这个

def update_account_balance(db, number, account, change):

con =  sqlite3.connect(db)
cur = con.cursor()

cur.execute('UPDATE Accounts SET (?) = (?) WHERE Number == (?)', [account, change, number])

以及我得到的是:

Traceback (most recent call last):
  Python Shell, prompt 2, line 1
  File "/Users/aharonsnyder1/Desktop/assignment 2/banking.py", line 168, in <module>
    cur.execute('UPDATE Accounts SET (?) = (?) WHERE Number == (?)', [account, change, number])
sqlite3.OperationalError: near "(": syntax error

我不确定它不喜欢什么。

2 个答案:

答案 0 :(得分:2)

有几件事:

  1. SQL语法不使用双等号
  2. SQLite使用引号,反引号或方括号来表示keywords
  3. 只有bootRun { if ( project.hasProperty('springDebug') ) { args '--debug' } } 子句中的参数才会在第二个参数中传递,而不是像SQL名称的结构组件一样传递。
  4. 考虑修改使用列名格式化更新语句字符串的位置(假设列名是WHERE变量中的值),然后传递参数:

    account

答案 1 :(得分:1)

也许这有效

cur.execute('UPDATE Accounts SET (?) = (?) WHERE Number == (?)', (account, change, number))