Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL Python Saya Melemparkan Ralat 'Tidak semua parameter digunakan dalam pernyataan SQL'?
Memahami Ralat "Tidak semua parameter digunakan dalam pernyataan SQL"
Apabila bekerja dengan pangkalan data MySQL menggunakan Python, anda mungkin menghadapi ralat menyatakan "Tidak semua parameter digunakan dalam pernyataan SQL." Ralat ini berlaku apabila bilangan parameter yang dinyatakan dalam pertanyaan SQL tidak sepadan dengan bilangan nilai yang disediakan dalam tuple data.
Dalam coretan kod yang disediakan, pernyataan SQL menyediakan pertanyaan INSERT untuk menambah pengguna ke jadual bernama 'tbluser' dalam pangkalan data 'DB'. Walau bagaimanapun, isu timbul dalam baris berikut:
add_user = ("INSERT INTO DB.tbluser " "(username, department, startyear, currentpos, link) " "VALUES (%s, %s, %d, %d, %s)")
Parameter integer (iaitu, %d) digunakan untuk nilai 'startyear' dan 'currentpos', manakala parameter rentetan (%s) ialah digunakan untuk nilai-nilai lain. Ketidakpadanan antara jenis parameter dan nilai data ini membawa kepada ralat.
Untuk menyelesaikan isu, ubah suai pernyataan SQL untuk menggunakan %s sebagai penanda parameter untuk semua nilai:
add_user = ("INSERT INTO DB.tbluser " "(username, department, startyear, currentpos, link) " "VALUES (%s, %s, %s, %s, %s)")
Ini memastikan bahawa bilangan parameter sepadan dengan bilangan nilai yang disediakan dalam tuple data.
Ingat bahawa penyesuai pangkalan data yang berbeza mungkin menggunakan parameter yang berbeza penanda, jadi sentiasa rujuk dokumentasi khusus untuk penyesuai yang anda gunakan.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Python Saya Melemparkan Ralat 'Tidak semua parameter digunakan dalam pernyataan SQL'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!