Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa cara terbaik untuk menghindari input pengguna untuk Ekspresi Reguler di MySQL?

AFAIK, tidak ada cara asli untuk melarikan diri dari regex MySQL. Anda dapat melakukannya di PHP dengan preg_quote (http://www.php.net/manual/en/function.preg-quote.php) yang mungkin akan melakukan pekerjaan untuk Anda, tetapi jelas tidak dirancang untuk tujuan tersebut.

Cara pilihan saya jika saya berada dalam situasi Anda adalah dengan membuat daftar putih regex di PHP yang kemudian dapat Anda terapkan ke string berbahaya Anda:

$safeString = preg_replace('/[^\w]/','',$dangerousString);

Ini menghapus karakter non-kata (yaitu apa pun kecuali A-Za-z0-9_) dari string Anda.

NB Saya yakin jawaban lain yang diberikan tidak akan menghapus/melarikan diri dari karakter khusus regex, yang menurut saya adalah kebutuhan Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menyimpan simbol '€' di MySQL menggunakan PHP?

  2. Tarik kata X pertama (bukan hanya karakter) dari mySQL

  3. Apakah ada fungsi untuk menutup pernyataan yang disiapkan mysql dengan PDO?

  4. Subquery MySQL - Temukan hanya record pertama di LEFT JOIN

  5. SQL:memilih baris di mana nilai kolom berubah dari baris sebelumnya