Escape String SQL

Escape teks untuk dipakai di dalam string SQL berkutip tunggal: gandakan kutip (SQL standar) atau pakai escape backslash MySQL. Opsional dibungkus kutip.

Setiap ' menjadi ''. Berlaku di PostgreSQL, SQLite, SQL Server, Oracle, dan MySQL dengan NO_BACKSLASH_ESCAPES. Di kode aplikasi, gunakan query berparameter.

Keluaran

Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.

Alat Terkait

Lihat Semua

Apa itu Escape String SQL?

Escape SQL mengubah nilai teks mentah menjadi bentuk yang bisa ditaruh di dalam literal string SQL berkutip tunggal. Mode standar menggandakan setiap kutip tunggal (O'Reilly → O''Reilly); mode MySQL memakai escape backslash seperti mysql_real_escape_string(). Alat ini untuk menulis SQL secara manual – kode aplikasi sebaiknya memakai query berparameter.

Cara menggunakan Escape String SQL

  1. Pilih Gaya escape: SQL standar atau MySQL.
  2. Jika perlu, centang Bungkus hasil dengan kutip tunggal.
  3. Ketik atau tempel nilai mentah ke kotak input.
  4. Salin keluaran yang sudah di-escape ke SQL Anda.

Contoh

Masukan
O'Reilly \ x
Keluaran
O''Reilly \ x

Mode SQL standar: kutip digandakan, backslash tetap.

Kapan menggunakan Escape String SQL

Pakai untuk menulis pernyataan SQL sekali pakai, data seed, atau skrip migrasi yang memuat teks dengan apostrof. Jangan pakai escape string sebagai perlindungan SQL injection di aplikasi – pakai prepared statement dengan parameter terikat. Meng-escape identifier (nama tabel/kolom) adalah masalah berbeda dan tidak dicakup.

Cara kerja Escape String SQL

SQL standar (ANSI; PostgreSQL, SQLite, SQL Server, Oracle, dan MySQL dengan NO_BACKSLASH_ESCAPES): setiap ' menjadi ''; backslash bersifat literal dan tidak berubah. Mode MySQL (pengaturan default MySQL/MariaDB): \0, baris baru, carriage return, backslash, ', ", dan Ctrl+Z (0x1A) diberi awalan backslash, sesuai mysql_real_escape_string(). Baris baru pada mode standar dibiarkan sebagai baris baru asli, yang valid di dalam literal SQL.

Kasus Penggunaan Umum

  • Menyisipkan nama seperti O'Reilly di INSERT manual
  • Menulis skrip seed atau migrasi dengan teks berkutip
  • Menyiapkan string literal untuk dump MySQL
  • Memahami perbedaan escape ANSI dan MySQL

Catatan Keamanan

Escape tidak menggantikan prepared statement. Semuanya berjalan secara lokal; tidak ada yang dikirim ke server.

Pertanyaan Umum

Apakah escape cukup untuk mencegah SQL injection?

Tidak. Pakai query berparameter; escape rawan kesalahan dan bergantung pada pengaturan server serta character set.

Mode mana yang dipakai untuk PostgreSQL?

SQL standar. Sejak PostgreSQL 9.1, backslash dalam string biasa bersifat literal.

Mengapa MySQL butuh escape berbeda?

Secara default MySQL memperlakukan backslash sebagai karakter escape di dalam string, sehingga backslash juga harus di-escape.

Langkah berikutnya yang disarankan

Jelajahi kategori lainnya