簡體   English   中英

無法通過MySQLdb在Python腳本中執行INSERT語句

[英]Can't execute an INSERT statement in a Python script via MySQLdb

我正在嘗試使用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查詢不會返回腳本中的任何行。

知道出了什么問題嗎?

您需要設置conn.autocommit() ,或者您需要執行conn.commit() - 請參閱常見問題解答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM