Rumah  >  Artikel  >  pangkalan data  >  Apakah kaedah melarikan diri dari aksara mysql?

Apakah kaedah melarikan diri dari aksara mysql?

WBOY
WBOYke hadapan
2023-05-26 16:55:463363semak imbas

Karakter melarikan diri biasa dalam MySQL termasuk tanda petikan tunggal ('), tanda petikan berganda ("), sengkang ke belakang (), dan beberapa aksara khas, seperti tanda peratus (%) dan garis bawah ( _) . Aksara ini mempunyai makna istimewa dalam MySQL Jika tidak dilepaskan, ia boleh menyebabkan hasil pertanyaan yang salah atau isu keselamatan seperti suntikan SQL

Dalam MySQL, aksara escape boleh diterbalikkan menggunakan petikan tunggal dalam penyataan pertanyaan, anda perlu menambah garis miring ke belakang sebelum petikan tunggal untuk melarikan diri

SELECT * FROM my_table WHERE my_column = 'I'm a student';

supaya rentetan yang mengandungi petikan tunggal boleh disoal dengan betul, jika anda mahu menggunakan petikan berganda, anda juga perlu melarikan diri mereka:

SELECT * FROM my_table WHERE my_column = "The book is called "The Great Gatsby"";

Dalam MySQL, garis miring ke belakang juga boleh digunakan untuk melarikan aksara khas Anda boleh menggunakan pernyataan carian berikut untuk menanya rentetan yang mengandungi tanda peratusan

Ini akan sepadan dengan betul tanda peratus dalam rentetan

MySQL menyediakan beberapa fungsi terbina dalam yang boleh digunakan untuk melepaskan aksara, tidak terhad kepada menggunakan garis miring ke belakang untuk melepaskan aksara Sebagai contoh, anda boleh menggunakan bar menegak berganda (||) operator untuk menggabungkan rentetan dan menggunakan fungsi CONCAT_WS() untuk melepaskan aksara secara automatik, seperti yang ditunjukkan di bawah:

SELECT * FROM my_table WHERE my_column LIKE '%%%';

Pernyataan pertanyaan ini akan mengembalikan Rentetan yang mengandungi ruang di mana perkataan telah dilepaskan dengan betul

Untuk mengelakkan isu keselamatan suntikan rentetan, bukan sahaja aksara escape boleh digunakan untuk melarikan diri daripada rentetan, tetapi kaedah pertanyaan berparameter yang menggunakan ruang letak bukannya nilai sebenar boleh menghalang pangkalan data daripada diserang oleh hasad pengguna menyuntik rentetan berniat jahat. Contohnya, anda boleh menggunakan pertanyaan berparameter berikut untuk menanya rentetan yang mengandungi perkataan tertentu:

SELECT CONCAT_WS(' ', 'I', 'am', 'a', 'student') AS sentence;

Tanda soal di sini mewakili pemegang tempat yang boleh digantikan secara dinamik dengan nilai sebenar pada masa pertanyaan. Menggunakan pertanyaan berparameter boleh meningkatkan keselamatan aplikasi dengan sangat baik

Atas ialah kandungan terperinci Apakah kaedah melarikan diri dari aksara mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam