Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql_real_escape_string VS addlashes

Was Sie zitieren, stammt wahrscheinlich aus dem Dokument, aber soweit ich weiß, ist es nicht unbedingt wahr.

addslashes fügt häufig störenden Zeichen Schrägstriche hinzu. mysql_real_escape_string maskiert alles, was MySQL maskiert werden muss. Dies können mehr oder weniger Zeichen sein als die addslashes kümmert sich um.

Außerdem mysql_real_escape_string fügt nicht unbedingt Schrägstriche hinzu, um zu entkommen. Obwohl ich denke, dass es funktioniert, wenn Sie es so machen, entkommen neuere Versionen von MySQL Anführungszeichen, indem Sie zwei davon zusammenfügen, anstatt einen Schrägstrich davor zu setzen.

Ich glaube, Sie sollten immer die Escape-Funktion Ihres Datenanbieters anstelle von addslashes verwenden , weil addslashes kann entweder zu viel oder zu wenig Arbeit für den Zweck leisten, für den Sie es verwenden. Andererseits mysql_real_escape_string weiß was zu tun ist, um eine Zeichenfolge für die Einbettung in eine Abfrage vorzubereiten. Selbst wenn sich die Spezifikationen zum Escape-Verhalten ändern und Sie plötzlich keine Backslashes mehr verwenden sollten, wird Ihr Code immer noch funktionieren, weil mysql_real_escape_string wird sich dessen bewusst sein.