pymysql的游标无法执行SQL语言

问题描述 投票:1回答:1

我想使用pymysql更新mysql数据库中的数据。但是我不知道我的代码出了什么问题。IDE:pycharm

name1=input("enter the new one")
stu_ID=int(input("enter student ID"))
sql=f."UPDATE student SET name={name1} WHERE ID={stu_ID}"
cursor. execute(sql)
mysql python-3.x pycharm
1个回答
0
投票

由于您的帖子中缺少该错误,因此我认为代码可以正常工作,但是在执行结束时不会更新数据。如果此假设不成立,请添加错误。

在您的代码中不存在数据库连接的声明,从我的角度来看,问题可能存在。实际上,对于update语句,您应该添加参数autocommit = True

检查以下示例:

database_connection=pymysql.connect(host=my_host, 
                                   user=my_user, 
                                   password=my_psw, 
                                   db=my_db_name, 
                                   charset=my_db_charset, 
                                   cursorclass=my_cursor_type, 
                                   autocommit=True)

这是因为pymysql在更新的情况下会启动隐式事务。因此,就您而言(没有自动提交),在查询执行结束时,将回滚数据。

另一个不同的选择,如果您不想在数据库连接声明中添加自动提交,则在查询后添加一个隐式提交,如下所示:

database_connection.commit()
© www.soinside.com 2019 - 2024. All rights reserved.