Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggunakan Senarai Python dengan Selamat dalam Klausa MySQL IN?
Apabila cuba menggunakan senarai ID dalam klausa IN dalam pertanyaan MySQL, adalah penting untuk memastikan keselamatan operasi, mengelakkan potensi kelemahan suntikan SQL. Tidak seperti memetakan senarai kepada rentetan dan menggunakannya terus dalam pertanyaan, yang menyebabkannya terdedah, pendekatan yang lebih selamat ialah menggunakan senarai terus sebagai parameter.
Untuk mencapai ini, seseorang boleh menggunakan rentetan format untuk jana bilangan ruang letak yang sesuai (%s) berdasarkan panjang senarai. Senarai itu sendiri kemudiannya diluluskan sebagai tuple kepada fungsi execute(), dengan itu mengelakkan keperluan untuk petikan manual dan melarikan diri.
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
Dengan menghantar data (list_of_ids) sebagai parameter, ia dikendalikan oleh Pemacu MySQL secara langsung, menghapuskan risiko suntikan. Kaedah ini membolehkan pengekalan sebarang aksara dalam rentetan, tanpa memerlukan pembersihan atau petikan tambahan.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Senarai Python dengan Selamat dalam Klausa MySQL IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!