首頁 >後端開發 >Python教學 >為什麼我的 SQLite INSERT 語句因長字串的「綁定數量不正確」而失敗?

為什麼我的 SQLite INSERT 語句因長字串的「綁定數量不正確」而失敗?

Linda Hamilton
Linda Hamilton原創
2024-11-30 10:23:15798瀏覽

Why Does My SQLite INSERT Statement Fail with

綁定數量不正確

嘗試使用下列程式碼將字串插入 SQLite資料庫時,會發生錯誤,指示數量不正確綁定數量:

def insert(array):
    connection=sqlite3.connect('images.db')
    cursor=connection.cursor()
    cnt=0
    while cnt != len(array):
            img = array[cnt]
            cursor.execute('INSERT INTO images VALUES(?)', (img))
            cnt+= 1
    connection.commit()
    connection.close()

插入的字串為74個字元時出現錯誤訊息long.

問題的根源

程式碼嘗試將一系列專案作為綁定值傳遞給execute() 方法。但是,綁定值參數需要一個元組,並且程式碼忽略提供創建元組所需的逗號。

cursor.execute('INSERT INTO images VALUES(?)', (img)) # Missing comma

修復

解決問題,在綁定值參數末尾添加一個逗號以創建一個元組:

cursor.execute('INSERT INTO images VALUES(?)', (img,))

或者,您可以使用列表文字,它也被識別為有效序列:

cursor.execute('INSERT INTO images VALUES(?)', [img])

透過任一更正,程式碼將正確插入影像路徑進入資料庫,而不會觸發有關綁定數量不正確的錯誤訊息。

以上是為什麼我的 SQLite INSERT 語句因長字串的「綁定數量不正確」而失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn