我有一个更新查询来对数据库进行一些更改,但不幸的是,它成功执行,我看不到数据库中的任何更改。在SQL更新查询的单行语句中可能出现什么问题?
Export-Service
和资源id是上面定义的变量!
提前致谢
答案 0 :(得分:1)
你提到phpMyAdmin所以我假设你使用的是带有db-api兼容连接器的MySQL(python-MySQL或mysql-connector-python等)。
第一点:您需要明确提交您的更改,即:
connection = YourConnector.connect(**connection_info)
cursor = connection.cursor()
update_query = """
UPDATE air_programmes
SET total_count = total_count + 1
WHERE id='%s'
""" % resource_id
cursor.execute(update_query)
connection.commit()
当然,如果您有一整批更新,您可能只想为整个批次提交一次。
第二点:使用Python字符串格式来传递查询参数很脆弱very unsafe。您真的想使用db-api来处理查询参数的正确清理:
connection = YourConnector.connect(**connection_info)
cursor = connection.cursor()
update_query = """
UPDATE air_programmes
SET total_count = total_count + 1
WHERE id='%s'
"""
cursor.execute(update_query, [resource_id]))
connection.commit()