簡體   English   中英

為什么沒有寫入數據庫?

[英]Why is nothing being written to the database?

這是我的代碼(目前):

conn = sqlite3.connect(db)
conn.text_factory = str  #bugger 8-bit bytestrings
cur = conn.cursor()

reader = csv.reader(open(csvfile, "rU"), delimiter = '\t')
for Number, Name, Message, Datetime, Type in reader:

    # populate subscriber table
    if str(Number)[:1] == '1':
        tmpNumber = str(Number)[1:]
        Number = int(tmpNumber)
    cur.execute('INSERT OR IGNORE INTO subscriber (name, phone_number) VALUES (?,?)', (Name, Number))

cur.close()
conn.close()

以下是來自csv文件的一些示例數據(在文件中以制表符分隔):

Number       Name        Message         Date/Time               Type
16665551212  Jane Doe    message one     11/23/2011 6:34:44 AM   Incoming
16665551212  Jane Doe    message two     11/23/2011 4:53:21 PM   Incoming

代碼執行時沒有任何錯誤,只有任何內容都沒有寫入數據庫。 為什么是這樣?

您需要提交更改: conn.commit()

如果您根本不想使用事務,即在“自動提交”模式下工作,請在connect()調用中使用isolation_level=None 但是,這通常是一個壞主意。

暫無
暫無

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

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