我使用 Python 2.7 和 pypyodbc 来运行 SQL 查询,但每当我使用 python 运行更新查询时,
cursor.execute("UPDATE tbl_User SET gender = ? WHERE id = 1", ['male'])
我收到错误:
TypeError: string or integer address expected instead of instance instance
如果我直接在 SQL Server 上运行它,同样的查询也有效。
问题是我没有在查询末尾放置分号。解决方案是:
cursor.execute("UPDATE tbl_User SET gender = ? WHERE id = 1;", ['male'])
怎么样:
gender = 'male'
cursor.execute("UPDATE tbl_User SET gender = {:s} WHERE id = 1".format(gender))
还要确保 sqlite 的 python 版本和 SQL Server 使用的 python 版本相同。对于蟒蛇的一种类型:
import sqlite3
print(sqlite3.sqlite_version)