Menggunakan garis miring terbalik untuk menghindari tanda kutip tunggal adalah teknik yang umum digunakan untuk memastikan bahwa tanda kutip tunggal tidak mengganggu penanganan string penuh MySQL.
Tanda kutip tunggal digunakan untuk mengapit string, jadi tanda kutip tunggal di dalam string itu sendiri dapat menyebabkan malapetaka jika tidak diloloskan dengan benar. Cukup menyisipkan garis miring terbalik tepat sebelum tanda kutip memastikan bahwa MySQL tidak menghentikan string sebelum waktunya.
Namun, mungkin ada saat-saat di mana Anda ingin garis miring terbalik tetap ada. Misalnya, Anda mungkin ingin menggunakan string dalam pernyataan SQL, dan karena itu, Anda ingin agar string tersebut di-escape terlebih dahulu dengan benar.
Di sinilah QUOTE()
fungsi masuk.
MySQL QUOTE()
fungsi mengutip string untuk menghasilkan hasil yang dapat digunakan sebagai nilai data yang lolos dengan benar dalam pernyataan SQL. String dikembalikan dengan diapit oleh tanda kutip tunggal dan dengan setiap contoh garis miring terbalik (\
), kutipan tunggal ('
), ASCII NUL
, dan Control+Z didahului dengan garis miring terbalik.
Sintaks Fungsi QUOTE()
Begini sintaksnya:
QUOTE(str)
Dimana str
adalah string yang (sudah) lolos.
Contoh
Sebuah contoh mungkin menjelaskan ini lebih baik daripada penjelasan saya:
SELECT QUOTE('Don\'t!') AS Result;
Hasil:
+-----------+ | Result | +-----------+ | 'Don\'t!' | +-----------+
Sepintas, Anda mungkin berpikir “tetapi tidak terjadi apa-apa – hasilnya sama persis dengan argumennya”. Namun, itulah mengapa fungsi ini berguna. Jika kami tidak menggunakan QUOTE()
fungsi, inilah yang akan terjadi:
SELECT 'Don\'t!' AS Result;
Hasil:
+--------+ | Result | +--------+ | Don't! | +--------+
Jadi dengan menggunakan QUOTE()
fungsi, kami mempertahankan tanda kutip tunggal dan garis miring terbalik.
Tentu saja, dalam banyak kasus, inilah yang Anda inginkan. Dalam banyak kasus, garis miring terbalik dan kutipan di sekitarnya harus Dihilangkan. Tetapi mungkin ada beberapa kasus di mana Anda menginginkan apa yang QUOTE()
fungsinya untuk Anda.
Alternatif
QUOTE()
fungsi menyelamatkan Anda dari keharusan melakukan sesuatu seperti ini:
SELECT '''Don\\\'t!''' AS Result;
Hasil:
+-----------+ | Result | +-----------+ | 'Don\'t!' | +-----------+
Jadi ini menyelamatkan kita dari keharusan menggunakan tiga tanda kutip tunggal untuk setiap tanda kutip, dan tiga garis miring terbalik untuk setiap garis miring terbalik.