綁定數量不正確
嘗試使用下列程式碼將字串插入 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中文網其他相關文章!