sql >> Database >  >> RDS >> Mysql

mysql_real_escape_string VS addlashes

Wat je citeert komt waarschijnlijk uit het document, maar voor zover ik weet is het niet per se waar.

addslashes voegt schuine strepen toe aan karakters die vaak storend zijn. mysql_real_escape_string ontsnapt aan alles wat MySQL nodig heeft om te ontsnappen. Dit kunnen meer of minder tekens zijn dan addslashes zorgt voor.

Ook mysql_real_escape_string zal niet noodzakelijk schuine strepen toevoegen om te ontsnappen. Hoewel ik denk dat het werkt als je het op die manier doet, ontsnappen recente versies van MySQL aan aanhalingstekens door er twee bij elkaar te zetten in plaats van er een schuine streep voor te zetten.

Ik vind dat je altijd de escape-functie van je gegevensprovider moet gebruiken in plaats van addslashes , omdat addslashes kan ofwel te veel of te weinig werk doen voor het doel waarvoor u het gebruikt. Aan de andere kant, mysql_real_escape_string weet wat u moet doen om een ​​tekenreeks voor te bereiden om deze in een query in te sluiten. Zelfs als de specificaties veranderen over hoe je aan dingen kunt ontsnappen en je plotseling geen backslashes meer moet gebruiken, zal je code nog steeds werken omdat mysql_real_escape_string zal het weten.



  1. Tuning:een goede plek om te beginnen

  2. DB_NAME() versus ORIGINAL_DB_NAME() in SQL Server:wat is het verschil?

  3. In-Memory OLTP:wat is er nieuw in SQL Server 2016

  4. Hoe installeer ik Postgis op een Keg-installatie van [email protected] met Homebrew?