Mysql
 sql >> база данни >  >> RDS >> Mysql

Кой е най-добрият начин да избегнете въвеждането на потребителя за регулярни изрази в MySQL?

AFAIK, няма естествен начин за избягване на MySQL regex. Можете да го направите на PHP с preg_quote (http://www.php.net/manual/en/function.preg-quote.php), който вероятно ще свърши работата вместо вас, но очевидно не е предназначен за целта.

Предпочитаният ми начин, ако бях във вашата ситуация, би бил да създам бял списък с регулярни изрази в PHP, който след това можете да приложите към вашия опасен низ:

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

Това премахва всички несловови знаци (т.е. всичко освен A-Za-z0-9_) от вашия низ.

NB Вярвам, че другите дадени отговори няма да премахнат/избягат специалните знаци за регулярни изрази, което според мен е ваше изискване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете виртуална колона с помощта на MySQL SELECT?

  2. Йерархични данни - Модел на вложен набор:MySql

  3. Методът за удостоверяване „mysql_old_password“ не се поддържа

  4. MySql :Предоставяне на опции само за четене?

  5. TIME_FORMAT() Примери – MySQL