Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Kod SQLite3 Saya Membuang Ralat \'Ikatan Salah Dibekalkan\'?
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!