SQLite3 錯誤:綁定值計數不符
使用cursor.execute() 方法將值插入SQLite3 資料庫時,至關重要的是確保提供的綁定值的數量與SQL 語句參數中指定的數量相符。否則,您可能會遇到類似於「提供的綁定數量不正確」的錯誤。
請考慮以下程式碼片段:
def insert(array): connection=sqlite3.connect('images.db') cursor=connection.cursor() cnt=0 while cnt != len(array): img = array[cnt] print(array[cnt]) cursor.execute('INSERT INTO images VALUES(?)', (img)) cnt+= 1 connection.commit() connection.close()
當嘗試插入長度為 74 的字串時,此程式碼會拋出上述錯誤。原因是cursor.execute()方法需要一系列綁定值,而(img)只是一個表達式。
要解決這個問題,我們需要將(img)轉換為元組或列表通過添加逗號。這是修正後的程式碼:
def insert(array): connection=sqlite3.connect('images.db') cursor=connection.cursor() cnt=0 while cnt != len(array): img = array[cnt] print(array[cnt]) cursor.execute('INSERT INTO images VALUES(?)', (img,)) # Add a comma cnt+= 1 connection.commit() connection.close()
或者,我們可以使用列表文字:
cursor.execute('INSERT INTO images VALUES(?)', [img])
以上是為什麼SQLite3在插入資料時會拋出「綁定值計數不匹配」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!