Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie eine PHP-PDO-parametrisierte Abfrage

So implementieren Sie eine PHP-PDO-parametrisierte Abfrage

藏色散人
藏色散人Original
2021-09-20 10:16:512201Durchsuche

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=...“.

So implementieren Sie eine PHP-PDO-parametrisierte Abfrage

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(&#39;SELECT * FROM fruit WHERE calories < ?;&#39;);
$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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn