使用python odbc游标更新查询-不起作用

时间:2019-09-17 06:58:54

标签: python pyodbc pypyodbc

我使用以下代码段执行了此查询:

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')

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

好像您缺少.commit()

例如:

cursor2.execute("UPDATE datatable SET data1 = ?, data2 = ?, data3 = ? WHERE id = ?",(d1,d2,d3,i))
cursor2.commit()