首页 >数据库 >mysql教程 >尽管出现成功消息,为什么我的 Python 脚本没有更新 MySQL 数据库?

尽管出现成功消息,为什么我的 Python 脚本没有更新 MySQL 数据库?

Patricia Arquette
Patricia Arquette原创
2024-12-19 09:57:10862浏览

Why Doesn't My Python Script Update My MySQL Database Despite a Success Message?

MySQL 和 Python:数据库更新异常

问题:

Python 脚本无法更新MySQL 数据库,尽管执行“UPDATE”命令并检索成功消息。但是,当通过 CLI 手动查询数据库时,该行保持不变。

代码代码片段:

import MySQLdb

conn = MySQLdb.connect(host="localhost", user="root", passwd="pass", db="dbname")
cursor = conn.cursor()

cursor.execute("UPDATE compinfo SET Co_num=4 WHERE ID=100")
cursor.execute("SELECT Co_num FROM compinfo WHERE ID=100")
results = cursor.fetchall()

for row in results:
    print row[0]

print "Number of rows updated: %d" % cursor.rowcount

cursor.close()
conn.close()

输出:

4
Number of rows updated: 1

观察结果:

  • 脚本执行“UPDATE”命令并报告成功更新。
  • 但是,通过 CLI 查询数据库显示该行尚未更新。
  • 直接从 CLI 执行“UPDATE”命令会按预期更新该行。

解决方案:

问题可能与缺失有关交易处理。 MySQLdb 默认情况下禁用自动提交,这意味着对数据库的任何更改都不会持久,直到显式发出提交为止。

要解决此问题,请在关闭连接之前添加以下行:

conn.commit()

这将强制将更改提交到数据库,确保该行按预期更新。

以上是尽管出现成功消息,为什么我的 Python 脚本没有更新 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn