Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggunakan Senarai ID dengan Selamat dalam Klausa MySQL IN?

Bagaimanakah Saya Boleh Menggunakan Senarai ID dengan Selamat dalam Klausa MySQL IN?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 04:35:02316semak imbas

How Can I Safely Use a List of IDs in a MySQL IN Clause?

Senarai Meletupkan untuk Klausa MySQL IN Selamat

Untuk menggunakan senarai ID dalam klausa MySQL IN dengan selamat dan mengelakkan suntikan SQL, gunakan MySQL's keupayaan parameterisasi dan bukannya meletupkan senarai secara manual dan melarikan diri sendiri.

format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))

Pendekatan ini mempunyai beberapa kelebihan:

  • Keselamatan: Data dihantar sebagai parameter kepada pemacu MySQL, memastikan ia terlepas dengan betul dan dilindungi daripada suntikan.
  • Kesederhanaan: Anda tidak perlu melakukan petikan manual atau melarikan diri, yang memudahkan kod anda dan mengurangkan risiko daripada ralat.
  • Prestasi: Parameterisasi selalunya lebih cekap daripada meletupkan senarai dan melarikan diri secara manual.

Perhatikan bahawa data dihantar sebagai satu tuple nilai , yang selamat untuk digunakan dalam pertanyaan MySQL. Pembolehubah format_strings mencipta senarai ruang letak yang dipisahkan koma untuk parameter.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Senarai ID dengan Selamat dalam Klausa MySQL IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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