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

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

Patricia Arquette
发布: 2024-12-19 09:57:10
原创
805 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板