Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新查询在SQL中成功运行,但数据库中没有任何更改_Python_Sql - Fatal编程技术网

Python 更新查询在SQL中成功运行,但数据库中没有任何更改

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兼

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

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很高兴我能提供帮助-并且毫不犹豫地接受答案;)