Python 更新查询在SQL中成功运行,但数据库中没有任何更改
我有一个更新查询来对数据库进行一些更改,但不幸的是,它执行成功,并且在数据库中没有看到任何更改。SQL update查询的单行语句中可能有什么错误Python 更新查询在SQL中成功运行,但数据库中没有任何更改,python,sql,Python,Sql,我有一个更新查询来对数据库进行一些更改,但不幸的是,它执行成功,并且在数据库中没有看到任何更改。SQL update查询的单行语句中可能有什么错误 update_query = '''UPDATE air_programmes SET total_count = total_count + 1 WHERE id='%s' ''' % resource_id 资源id是上面定义的一个变量 提前感谢您提到了phpMyAdmin,所以我假设您使用的MySQL带有与db api兼
update_query = '''UPDATE air_programmes SET total_count = total_count + 1 WHERE id='%s'
''' % resource_id
资源id是上面定义的一个变量
提前感谢您提到了phpMyAdmin,所以我假设您使用的MySQL带有与db api兼容的连接器(python MySQL或MySQL连接器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字符串格式传递查询参数是脆弱的,而且容易出错。您确实希望使用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()
在某些数据库中,您需要在
更新后发出提交
。任何具有该id的行?当我在我的phpMyadmin上运行此查询时,它会执行,并且我能够看到该特定列中的更改,但以编程方式运行它不会进行更新。@abhishek很高兴我能提供帮助-并且毫不犹豫地接受答案;)