Ralat Mengikat dalam SQLite3
Apabila cuba untuk melaksanakan pertanyaan SQL dengan berbilang pengikatan menggunakan sqlite3, anda mungkin menghadapi "Bilangan pengikatan yang salah dibekalkan" mesej ralat. Ralat ini berlaku apabila bilangan pengikatan yang disediakan tidak sepadan dengan bilangan parameter yang ditakrifkan dalam pertanyaan.
Dalam kod contoh:
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()
Apabila cuba memasukkan rentetan sepanjang 74 aksara , anda menerima mesej ralat, yang menunjukkan ketidakpadanan antara bilangan pengikatan dan parameter.
Untuk menyelesaikan isu ini, pastikan anda lulus dalam urutan yang sah sebagai parameter. Dalam kes ini, tanda kurung di sekeliling pemboleh ubah img harus mengandungi koma untuk mencipta tuple:
cursor.execute('INSERT INTO images VALUES(?)', (img,))
Sebagai alternatif, anda boleh menggunakan literal senarai:
cursor.execute('INSERT INTO images VALUES(?)', [img])
Dengan membetulkan parameter , anda akan memberikan bilangan pengikatan yang betul untuk pertanyaan, menyelesaikan ralat dan membolehkan anda memasukkan data dengan jayanya.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Bilangan Ikatan yang Tidak Betul\' dalam Kod SQLite3 Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!