sql >> Database >  >> RDS >> Mysql

Wat is de beste manier om te ontsnappen aan gebruikersinvoer voor reguliere expressies in MySQL?

AFAIK, er is geen native manier om te ontsnappen voor MySQL-regex. Je kunt het in PHP doen met preg_quote (http://www.php.net/manual/en/function.preg-quote.php), wat waarschijnlijk het werk voor je zou doen, maar het is duidelijk niet ontworpen voor het doel.

Mijn voorkeursmanier als ik in jouw situatie was, zou zijn om een ​​regex-witte lijst in PHP te maken die je vervolgens kunt toepassen op je gevaarlijke string:

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

Hiermee worden alle niet-woordtekens (d.w.z. alles behalve A-Za-z0-9_) uit je tekenreeks verwijderd.

NB Ik geloof dat de andere gegeven antwoorden geen speciale tekens voor regex zullen verwijderen/ontsnappen, wat volgens mij uw vereiste is.



  1. Hoe een script van SQL Server-gegevens te krijgen?

  2. Hoe MySQL of MariaDB Galera Cluster te Bootstrap - Bijgewerkt

  3. Dwing gebruikers om de nieuwste versie van de Android-app te hebben

  4. Een module ontwikkelen met Java 9 in Eclipse IDE, deel 2