In PHP können Sie die Prepare-Methode verwenden, um PDO-parametrisierte Abfragen durchzuführen. Diese Methode gibt ein PDOStatement-Objekt zurück und verwendet dabei eine Syntax wie „prepare('SELECT login_oid FROM login_id WHERE user_id=...“.
Die Funktionsweise dieses Artikels Umgebung: Windows 7-System, PHP7.1, Dell G3-Computer
Wie implementiert man eine parametrisierte Abfrage in PHP PDO?
PDO-parametrisierte Abfrage Prepare() PHP verhindert SQL-Injection
Parameterisierte Abfrage In PDO wird hauptsächlich die Methode Prepare () verwendet, und diese Methode gibt dann ein PDOStatement-Objekt zurück, bei dem es sich um eine SQL-Anweisung handelt (ich weiß nicht, wie ich sie übersetzen soll). Zu diesem Zeitpunkt wird die SQL-Anweisung nur kompiliert, aber nicht ausgeführt . Nach dem Aufruf der Methode in PDOStatement wird die SQL-Anweisung ausgeführt, wie im folgenden Beispiel gezeigt:
$sm = $db->prepare('SELECT login_oid FROM logined WHERE user_id=:user_id;'); $sm->bindValue(':user_id', $user_id, PDO::PARAM_INT); $sm -> execute();
Bevor „execute()“ ausgeführt wird, können Sie die Methode „bindValue()“ oder „bindParam()“ aufrufen, um die von Ihnen angegebenen Parameter zu ersetzen In der zuvor vorbereiteten SQL-Anweisung gibt es zwei Möglichkeiten, Parameter in der SQL-Anweisung anzugeben: „:name“ und „?“. Die erstere Methode wird im obigen Code verwendet und die letztere Methode lautet:
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?;'); $sm->bindValue(1, $calories, PDO::PARAM_INT); $sm->execute();
bindValue() hat drei Parameter, der erste gibt an, welcher Parameter in der SQL-Anweisung ersetzt werden soll, und der zweite gibt die Ersetzung an. Nach dem Wert gibt der dritte den Typ des Werts an. Die Typkorrespondenz lautet wie folgt:
PDO::PARAM_BOOL
Boolescher Typ
PDO::PARAM_NULL
NULL-Typ
PDO::PARAM_INT
Integer-Typ
PDO::PARAM_STR
String-Typen wie CHAR, VARCHAR, String
PDO::PARAM_LOB
Ressourcenklasse großes Objekt, wie Dateien usw.
PDO::PARAM_STMT
Ich weiß es nicht
PDO::PARAM_INPUT_OUTPUT
Das Scheint ein erweiterter Typ zu sein
Es ist kein echter Zahlentyp enthalten, was sehr überraschend ist.
Lassen Sie uns über die Methode „execute()“ sprechen. Sie kann auch Parameter ersetzen, aber sie ändert die Typen aller Werte wie folgt in String-Typen umwandeln:
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine PHP-PDO-parametrisierte Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!