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