Python MySQL 插入操作疑难解答
在 Python 中,使用 MySQL API 与 MySQL 数据库交互,插入记录可能会遇到障碍。本文解决了这样一个问题:尽管实现看似正确,但记录却无法插入。
提供的代码建立了与数据库的连接,并尝试将记录插入“文档”表中。但是,插入操作失败。要解决这个问题,了解数据库事务的重要性至关重要。
在 MySQL 中,对数据库的更改是通过事务管理的。事务在连接建立时开始,在连接关闭或显式调用提交或回滚操作时结束。事务期间对数据库所做的任何更改都不是永久的,直到事务提交为止。
在提供的代码中,插入操作执行成功,但在连接关闭之前更改并未提交到数据库(使用 db.close())。如果不提交事务,一旦连接关闭,插入操作就会被丢弃。
要解决此问题并确保插入操作成功,您应该在关闭数据库连接之前调用 db.commit() 。此操作提交事务,使插入的记录在数据库中持久存在。
以下是包含提交操作的修改后的代码:
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()
通过包含 db.commit() 调用,事务期间所做的更改(包括插入操作)将提交到数据库并成为永久的。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3