Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Pernyataan INSERT SQLite Saya Gagal dengan \'Bilangan Pengikatan Salah\' untuk Rentetan Panjang?

Mengapa Pernyataan INSERT SQLite Saya Gagal dengan \'Bilangan Pengikatan Salah\' untuk Rentetan Panjang?

Linda Hamilton
Lepaskan: 2024-11-30 10:23:15
asal
820 orang telah melayarinya

Why Does My SQLite INSERT Statement Fail with

Bilangan Pengikatan Salah

Apabila cuba memasukkan rentetan ke dalam pangkalan data SQLite menggunakan kod di bawah, ralat berlaku menunjukkan nombor yang salah daripada pengikatan:

def insert(array):
    connection=sqlite3.connect('images.db')
    cursor=connection.cursor()
    cnt=0
    while cnt != len(array):
            img = array[cnt]
            cursor.execute('INSERT INTO images VALUES(?)', (img))
            cnt+= 1
    connection.commit()
    connection.close()
Salin selepas log masuk

Mesej ralat muncul apabila rentetan yang hendak dimasukkan ialah 74 aksara panjang.

Akar Isu

Kod cuba menghantar urutan item kepada kaedah execute() sebagai nilai ikatan. Walau bagaimanapun, parameter nilai bind memerlukan tupel dan kod tersebut mengabaikan untuk memberikan koma yang diperlukan untuk mencipta tupel.

cursor.execute('INSERT INTO images VALUES(?)', (img)) # Missing comma
Salin selepas log masuk

Pembetulan

Untuk menyelesaikan masalah isu, tambahkan koma pada penghujung parameter nilai bind untuk mencipta a tuple:

cursor.execute('INSERT INTO images VALUES(?)', (img,))
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan literal senarai, yang juga diiktiraf sebagai urutan yang sah:

cursor.execute('INSERT INTO images VALUES(?)', [img])
Salin selepas log masuk

Dengan salah satu pembetulan, kod akan memasukkan laluan imej dengan betul ke dalam pangkalan data tanpa mencetuskan mesej ralat tentang bilangan pengikatan yang salah.

Atas ialah kandungan terperinci Mengapa Pernyataan INSERT SQLite Saya Gagal dengan \'Bilangan Pengikatan Salah\' untuk Rentetan Panjang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan