首頁 > 後端開發 > Python教學 > 為什麼SQLite3在插入資料時會拋出「綁定值計數不匹配」錯誤?

為什麼SQLite3在插入資料時會拋出「綁定值計數不匹配」錯誤?

Linda Hamilton
發布: 2024-11-29 01:15:13
原創
213 人瀏覽過

Why Does SQLite3 Throw a

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板