问题:
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
观察结果:
解决方案:
问题可能与缺失有关交易处理。 MySQLdb 默认情况下禁用自动提交,这意味着对数据库的任何更改都不会持久,直到显式发出提交为止。
要解决此问题,请在关闭连接之前添加以下行:
conn.commit()
这将强制将更改提交到数据库,确保该行按预期更新。
以上是尽管出现成功消息,为什么我的 Python 脚本没有更新 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!