首页 >数据库 >mysql教程 >为什么我的 Python MySQL 插入不起作用?

为什么我的 Python MySQL 插入不起作用?

Barbara Streisand
Barbara Streisand原创
2024-11-06 01:07:02410浏览

Why Are My Python MySQL Inserts Not Working?

Python MySQL 插入操作疑难解答

在 Python 中,使用 MySQL API 与 MySQL 数据库交互,插入记录可能会遇到障碍。本文解决了这样一个问题:尽管看似正确的实现,但仍无法插入记录。

提供的代码建立与数据库的连接,并尝试将记录插入“文档”表中。但是,插入操作失败。要解决这个问题,了解数据库事务的重要性至关重要。

在 MySQL 中,对数据库的更改是通过事务管理的。事务在连接建立时开始,在连接关闭或显式调用提交或回滚操作时结束。事务期间对数据库所做的任何更改在事务提交之前都不是永久的。

在提供的代码中,插入操作已成功执行,但在连接关闭之前更改并未提交到数据库(使用 db.close())。如果不提交事务,一旦连接关闭,插入操作就会被丢弃。

要解决此问题并确保插入操作成功,您应该在关闭数据库连接之前调用 db.commit() 。此操作提交事务,使插入的记录在数据库中持久存在。

以下是包含提交操作的修改后的代码:

<code class="python">db = MySQLdb.connect("localhost", "root", "padmaramulu", "pdfsearch")
cursor = db.cursor()
# cursor.execute("""CREATE TABLE IF NOT EXISTS documents (docid INT NOT NULL ,PRIMARY KEY(docid),docname CHAR(30)) engine=innodb""")
temp = "hello"; number = 2;
cursor.execute('insert into documents(docid,docname) values("%d","%s")' % (number, temp))
db.commit()
db.close()</code>

通过包含 db.commit() 调用,事务期间所做的更改(包括插入操作)将提交到数据库并永久生效。

以上是为什么我的 Python MySQL 插入不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

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