Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Kod SQLite3 Saya Membuang Ralat \'Ikatan Salah Dibekalkan\'?

Mengapa Kod SQLite3 Saya Membuang Ralat \'Ikatan Salah Dibekalkan\'?

Barbara Streisand
Barbara Streisandasal
2024-12-05 01:15:101008semak imbas

Why Does My SQLite3 Code Throw an

Ralat SQLite3: Pengikatan Salah Dibekalkan

Apabila melaksanakan pertanyaan SQL dengan parameter pengikatan, adalah penting untuk memastikan bilangan pengikatan yang betul dibekalkan. Dalam kod yang diberikan, ralat berikut ditemui:

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 74 supplied

Setelah memeriksa kod:

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()

Menjadi jelas bahawa isunya terletak pada cara parameter bind ditentukan dalam pernyataan cursor.execute:

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

Untuk menyelesaikan ralat, koma diperlukan untuk mencipta tuple:

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

Sebagai alternatif, literal senarai boleh digunakan:

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

Dengan memastikan parameter ikatan dibekalkan dengan betul sebagai tupel atau senarai, bilangan ikatan yang betul akan digunakan, menyelesaikan ralat.

Atas ialah kandungan terperinci Mengapa Kod SQLite3 Saya Membuang Ralat \'Ikatan Salah Dibekalkan\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn