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

Wann sollten PDO-vorbereitete Abfragen verwendet werden? mysql_real_escape-Fehler

Um den erhaltenen Fehler zu beheben, mysql_real_escape_string() erfordert eine offene Verbindung über mysql_connect() . Da Sie keinen haben, versucht er, eine Verbindung herzustellen, und schlägt fehl (unter Verwendung eines Benutzernamens von matthew , während sich Ihr PDO mit root verbindet ). Außerdem können Sie nicht (oder sollten nicht ) mix and match mysql_real_escape_string() und PDO - es sind verschiedene Bibliotheken.

In Bezug auf „wann“ vorbereitete Anweisungen verwendet werden sollten, lautet die allgemeine Faustregel, wann immer Werte nicht fest codiert sind. Ihr Beispiel von LIKE '%hotmail%' muss nicht vorbereitet werden, es ist fest codiert und wird sich niemals ändern (es sei denn, Sie aktualisieren es natürlich manuell).

Wenn Sie eine Abfrage haben, die eine Variable irgendeiner Art aufnimmt, seien es Daten von $_POST oder $_GET , oder eine Variable, die ein Entwickler 10 Zeilen vor der Abfrage erstellt hat, sollten Sie eine vorbereitete Anweisung verwenden (oder ihr zumindest maskieren, siehe PDO::quote ).