Update Query在SQL中成功运行,但数据库中没有任何更改

时间:2016-06-27 11:34:16

标签: python sql

我有一个更新查询来对数据库进行一些更改,但不幸的是,它成功执行,我看不到数据库中的任何更改。在SQL更新查询的单行语句中可能出现什么问题?

Export-Service

和资源id是上面定义的变量!

提前致谢

1 个答案:

答案 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()