Menggabungkan Senarai Python ke dalam Pertanyaan SQL sebagai Parameter
Anda memiliki senarai Python (l) yang mengandungi nilai (cth., [1, 5, 8]), dan anda ingin mendapatkan semula data daripada jadual pangkalan data berdasarkan elemen senarai ini. Khususnya, anda berhasrat untuk mengeluarkan pertanyaan SQL seperti:
select name from students where id = |IN THE LIST l|
Untuk mencapai ini, pertimbangkan untuk menggunakan pendekatan pertanyaan berparameter, yang lebih serba boleh dan teguh daripada membenamkan nilai terus ke dalam rentetan SQL. Teknik ini boleh mengendalikan kedua-dua nilai berangka dan rentetan dengan berkesan, menghapuskan sebarang isu yang berpotensi melarikan diri.
Coretan kod Python berikut menunjukkan pendekatan ini:
placeholder= '?' # For SQLite. Adjust based on database parameter style. placeholders= ', '.join(placeholder for unused in l) query= 'SELECT name FROM students WHERE id IN (%s)' % placeholders cursor.execute(query, l)
Dengan menggunakan ruang letak (cth., '?' ) dalam pertanyaan SQL dan seterusnya menghantar senarai (l) sebagai parameter, anda memastikan bahawa nilai dikendalikan dengan betul oleh pangkalan data. Pendekatan ini menjamin integriti data dan menghalang potensi kelemahan suntikan SQL yang mungkin timbul daripada penggabungan rentetan yang tidak terkawal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Senarai Python sebagai Parameter dalam Klausa SQL `IN`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!