SQL中的更新查询成功运行,但数据库中没有更改

2024-04-18 08:01:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个更新查询来对数据库进行一些更改,但不幸的是,它成功地执行了,并且在数据库中没有看到任何更改。SQL update查询的单行语句中可能有什么错误?你知道吗

update_query = '''UPDATE air_programmes SET total_count = total_count + 1  WHERE  id='%s'
        ''' % resource_id 

资源id是上面定义的变量!你知道吗

提前谢谢


Tags: id数据库sqlcount错误update语句air
1条回答
网友
1楼 · 发布于 2024-04-18 08:01:22

你提到了phpMyAdmin,所以我假设你使用的MySQL带有一个与db-api兼容的连接器(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()

相关问题 更多 >