【发布时间】:2020-01-18 00:02:57
【问题描述】:
我使用以下 sn-p 执行此查询:
cursor2.execute("UPDATE datatable SET data1 = ?, data2 = ?, data3 = ? WHERE id = ?",[d1,d2,d3,i])
print("affected rows = {}".format(cursor2.rowcount))
受影响的行返回 1,但数据库中的行未更新。
打印d1,d2,d3 没问题,只是数据库中的更新不起作用。
函数有问题吗?
补充:
我试过这样:
sql_update_query = """UPDATE datatable SET data1 = %s, data2 = %s, data3 = %s WHERE id = %s"""
inputData = (d1,d2,d3,i)
cursor2.execute(sql_update_query, inputData)
但它会返回此错误:
('HY000', 'The SQL contains 0 parameter markers, but 4 parameters were supplied')
感谢您的帮助。
【问题讨论】:
-
您可能需要在某处发出
commit。见stackoverflow.com/questions/20199569/pyodbc-insert-into-sql。