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

Muss ich mysql_real_escape_string verwenden, wenn ich Parameter binde?

Nein, Sie müssen den Wert nicht selbst maskieren (d. h. nein, Sie müssen mysqli_real_escape_string nicht aufrufen ) , wenn Sie vorbereitete Anweisungen verwenden:die DB-Engine erledigt das selbst.

(Eigentlich, wenn Sie mysql_real_escape_string aufrufen würden und wenn Sie gebundene Parameter verwenden, würden Ihre Zeichenfolgen zweimal maskiert werden - was nicht großartig wäre:Sie würden am Ende überall maskierte Zeichen haben ...)


Nebenbei bemerkt:Ihre Werte werden als Ganzzahlen übergeben (wie durch 'ii' angegeben). ) , sodass Sie mysql_real_escape_string nicht aufrufen müssten , auch wenn Sie keine vorbereiteten Anweisungen verwendet haben:Wie der Name schon sagt, wird diese Funktion verwendet, um ... Zeichenketten zu entkommen.

Für Ganzzahlen verwende ich im Allgemeinen einfach intval um sicherzustellen, dass die Daten, die ich in meine SQL-Abfragen einfüge, wirklich Ganzzahlen sind.

(Da Sie aber wieder einmal vorbereitete Abfragen verwenden, müssen Sie diese Art von Escape nicht selbst durchführen)