Rumah >pembangunan bahagian belakang >tutorial php >Cara Melarikan Diri Kad Liar MySQL dengan Betul: Bila dan Mengapa?

Cara Melarikan Diri Kad Liar MySQL dengan Betul: Bila dan Mengapa?

Susan Sarandon
Susan Sarandonasal
2024-11-08 05:33:01251semak imbas

How to Properly Escape MySQL Wildcards: When and Why?

Melepaskan Kad Liar MySQL: Menjelaskan Salah Tanggapan

MySQL menggunakan aksara tertentu sebagai kad bebas untuk memudahkan padanan corak dalam pertanyaan. Walau bagaimanapun, dalam konteks tertentu, adalah penting untuk memahami kehalusan melarikan diri kad bebas ini untuk memastikan pernyataan SQL yang tepat dan konsisten.

Escaping % dan _ for String Literal

Bertentangan kepada andaian awal, melarikan diri dari kad bebas MySQL % dan _ menggunakan addcslashes adalah tidak perlu apabila menugaskannya kepada literal rentetan biasa. Fungsi mysql_real_escape_string adalah memadai untuk tujuan ini.

Nuansa Melarikan diri dalam Ungkapan LIKE

Apabila menyediakan rentetan untuk pernyataan LIKE, pendekatan yang lebih bernuansa diperlukan. Dalam ungkapan SUKA, kedua-dua % dan _ menjadi aksara khas, bersama-sama dengan watak melarikan diri itu sendiri. Untuk mengelakkan salah tafsir, adalah penting untuk melakukan dua tahap pelarian:

  1. LIKE Escaping: Di sini, MySQL menggunakan garis miring ke belakang sebagai aksara melarikan diri. Hanya % dan _ perlu melarikan diri mengikut ANSI SQL, dan watak melarikan diri juga harus dilepaskan untuk padanan LIKE yang betul.
  2. MySQL String Escaping: Setelah LIKE escaping selesai, rentetan yang terhasil mesti menjalani pelarian rentetan biasa menggunakan mysql_real_escape_string.

Mengatasi Ketidakkonsistenan Yang Jelas

Sebab mengapa asterisk (", '') kelihatan tidak dilepaskan apabila dikembalikan daripada pangkalan data ialah MySQL secara automatik menyaring keluar s Ini adalah sisihan daripada ANSI SQL, yang menyatakan bahawa aksara selain % dan _ tidak boleh dilepaskan.

Pertimbangan Mudah Alih untuk LIKE Escaping

Atas ialah kandungan terperinci Cara Melarikan Diri Kad Liar MySQL dengan Betul: Bila dan Mengapa?. 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