Melepaskan Aksara Khas dalam Pertanyaan MySQL
Apabila membina pertanyaan MySQL yang termasuk aksara khas, adalah penting untuk melarikan diri daripadanya untuk mengelakkan ralat sintaks. Ini menjadi lebih penting apabila berurusan dengan input pengguna, kerana aksara khas boleh dieksploitasi untuk tujuan berniat jahat.
Pertimbangkan contoh berikut:
select * from tablename where fields like "%string "hi" %";
Dalam pertanyaan ini, petikan berganda mengelilingi rentetan "hi" ditafsirkan sebagai sebahagian daripada rentetan itu sendiri, menyebabkan ralat sintaks.
Meloloskan diri Keperluan
Jujukan pelarian khusus yang diperlukan bergantung pada aksara khas yang digunakan. MySQL mengenali urutan pelarian berikut:
Penyelesaian
Untuk melarikan petikan berganda dalam contoh pertanyaan, pertanyaan hendaklah ditulis seperti berikut:
select * from tablename where fields like '%string \"hi\" %';
Sebagai alternatif, petikan tunggal boleh digunakan sebagai rentetan pembatas:
select * from tablename where fields like '%string ''hi'' %';
Pendekatan ini memudahkan pelarian dengan memastikan petikan tunggal dalam rentetan tidak perlu dilepaskan.
Atas ialah kandungan terperinci Bagaimanakah Saya Melarikan Diri dengan Betul Watak Khas dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!