SQLite3.操作错误:没有这样的列:用于sqlite3 python中的更新命令



我正在尝试使用以下函数更新 sqlite 数据库中的值

def updateNameById(self, id, val):
c.execute("UPDATE {0} SET name = {1} WHERE rowid = {2}".format(table,val,id))

我还尝试以不同的变体编写此函数,例如

c.execute("UPDATE "+table+" SET name = "+val+" WHERE rowid = "+id)
#same error

我也试过

c.execute("UPDATE ? table SET name = ? WHERE rowid = ?,(table,val,id))
#this one gives syntax error near ?

使用代码从中调用时

print(obj.updateNameById(1,'Aquib'))

它给 SQLite3.操作错误: 没有这样的列: Aquib

我还尝试将id参数作为字符串和双单引号的东西,但在尝试了许多组合并查找答案后,都会导致相同的错误,我终于发布了这个问题

数据库名称 : data.db, 表 : 表。 试试这个,它对我来说效果很好。

def updateNameById(id, val):
connection = sqlite3.connect('data.db')
connection.row_factory = sqlite3.Row
cursor = connection.cursor()    
cursor.execute('UPDATE table SET name=? WHERE id=?',(val,id,))
connection.commit()
conn = sqlite3.connect("dbName")
cursor = conn.cursor()
def updateNameById(self, id, val):
cursor.execute('UPDATE table SET name=? WHERE id=?',(val,id,))
conn.commit()

最新更新