我正在尝试INSERT使用MySQLdb从Python脚本在MySQL表上执行基本语句。我的桌子看起来像这样:
INSERT
CREATE TABLE `testtable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `testfield` varchar(255) NOT NULL, PRIMARY KEY (`id`) )
从MySQL命令行运行此查询可以正常工作:
INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue');
但是,当我尝试从Python脚本执行查询时,不会插入任何行。这是我的代码:
conn = MySQLdb.connect(host=db_host, port=db_port, user=db_user, passwd=db_password, db=db_database) cursor = conn.cursor () cursor.execute ("INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue')") print "Number of rows inserted: %d" % cursor.rowcount cursor.close() conn.close()
奇怪的是,这将显示“插入的行数:1”。我还可以确认此查询增加了ID字段,因为当我通过命令行添加另一行时,其ID的值与Python脚本已成功插入其行的值相同。但是,运行SELECT查询不会从脚本返回任何行。
SELECT
知道出了什么问题吗?
您需要设置conn.autocommit(),或者需要做conn.commit()-请参阅常见问题解答
conn.autocommit()
conn.commit()