2010-09-06 39 views
1

我試圖通過使用MySQL連接器/ Python插入一些數據到本地MySQL數據庫 - 顯然是將MySQL集成到Python 3而不打破C編譯器的唯一方法。與Python的DB-API

我試了一下包裝中的所有例子;那些執行的人可以輸入數據就好了。不幸的是,我試圖寫入任何東西到我的表中失敗。

這裏是我的代碼:

import mysql.connector 


def main(config): 
    db = mysql.connector.Connect(**config) 
    cursor = db.cursor() 

    stmt_drop = "DROP TABLE IF EXISTS urls" 
    cursor.execute(stmt_drop) 

    stmt_create = """ 
    CREATE TABLE urls (
     id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, 
     str VARCHAR(50) DEFAULT '' NOT NULL, 
     PRIMARY KEY (id) 
    ) CHARACTER SET 'utf8'""" 
    cursor.execute(stmt_create) 

    cursor.execute (""" 
     INSERT INTO urls (str) 
     VALUES 
     ('reptile'), 
     ('amphibian'), 
     ('fish'), 
     ('mammal') 
     """) 
    print("Number of rows inserted: %d" % cursor.rowcount) 
    db.close() 
if __name__ == '__main__': 
    import config 
    config = config.Config.dbinfo().copy() 
    main(config) 

OUTPUT:插入

行數:4

我嚴格按照我的例子給我的代碼定位代碼,並且不能在我的生活中找出問題所在。我在這裏做錯了什麼?

用腳本獲取表格數據的工作很好,所以我不擔心配置文件。我是根數據庫,所以權利也不應該成爲問題。

+0

你是什麼意思?根據你的輸出結果,如果它是準確的,那麼這些操作就可以成功完成了,就像python可以說的那樣。 – 2010-09-06 03:49:37

+0

對不起,顯然我並不清楚這一點。操作完成後,我的test.url表中沒有條目。 – 2010-09-06 03:57:11

回答

5

您需要添加一個db.commit()才能在db.close()之前落實您的更改!

+0

你是我的英雄亞歷克斯。太感謝了。 – 2010-09-06 04:07:37