在python中执行图中的sql语句,程序不报错,但数据库不会有改变。我传入的参数是三个列表。我试着将具体的参数写道sql语句里面并在datagrip中执行,是正确的。不清楚问题所在。
要调用cur.commit
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
从您提供的信息来看,程序没有报错,但数据库没有改变,可能是因为您没有提交事务。
在使用Python连接MySQL数据库并执行SQL语句时,需要注意使用事务进行管理。如果没有手动提交事务,即使SQL语句执行成功,也不会将更改保存到数据库中。
以下是一个示例代码,演示了如何在Python中使用MySQL连接器执行SQL语句并提交事务:
import mysql.connector
# 连接MySQL数据库
cnx = mysql.connector.connect(user='username', password='password', host='localhost', database='database_name')
# 获取游标对象
cursor = cnx.cursor()
# 执行SQL语句
sql = "INSERT INTO table_name (column1, column2, column3) VALUES (%s, %s, %s)"
values = [("value1", "value2", "value3"), ("value4", "value5", "value6"), ("value7", "value8", "value9")]
cursor.executemany(sql, values)
# 提交事务
cnx.commit()
# 关闭游标和连接
cursor.close()
cnx.close()
在示例代码中,首先使用mysql.connector.connect
方法连接MySQL数据库。然后,使用cursor()
方法获取游标对象。接着,使用executemany
方法执行SQL语句,其中%s
表示占位符,values
为参数列表。最后,使用commit
方法提交事务,将更改保存到数据库中。最后,关闭游标和连接。
需要注意的是,如果SQL语句执行失败,可以使用rollback
方法回滚事务,撤销之前的更改。
希望以上信息对您有所帮助。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢