使用 MySQL 和 Python 排除数据库更新问题
使用 Python 的 MySQLdb 库更新 MySQL 数据库时会出现问题。正在执行以下代码:
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()
运行此代码后,显示成功,表明数据库已更新。然而,随后从 MySQL 命令行界面查询发现更新并未应用。
原因
问题在于缺少提交操作。 MySQLdb 默认启用事务,并且更新需要显式提交才能使其永久化。如果没有提交,更改不会保存到数据库中。
解决方案
要解决此问题,请在关闭连接之前包含 conn.commit() ,如下所示:
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 **conn.commit()** # Commit changes to database cursor.close() conn.close()
通过合并 conn.commit(),对数据库所做的更改将成功持久。
以上是为什么使用 Python 更新我的 MySQL 数据库没有反映在数据库中?的详细内容。更多信息请关注PHP中文网其他相关文章!