Heim > Backend-Entwicklung > PHP-Tutorial > bindParam vs. bindValue: Was ist der Hauptunterschied im PDO von PHP?

bindParam vs. bindValue: Was ist der Hauptunterschied im PDO von PHP?

DDD
Freigeben: 2024-12-18 16:04:24
Original
223 Leute haben es durchsucht

bindParam vs. bindValue: What's the Key Difference in PHP's PDO?

Den Unterschied zwischen bindParam und bindValue verstehen

Frage:

Was ist der grundlegende Unterschied? zwischen PDOStatement::bindParam() und PDOStatement::bindValue()?

Antwort:

Laut der manuellen Eingabe von PDOStatement::bindParam liegt der Hauptunterschied im Referenzierungsverhalten der beiden Methoden. bindParam bindet Variablen als Referenzen, während bindValue die Werte von Variablen bindet. Dieses Referenzierungsverhalten kommt bei der Ausführung von PDOStatement::execute() ins Spiel.

bindParam-Beispiel:

Bedenken Sie den folgenden Code:

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindParam(':sex', $sex); // bind the variable using bindParam
$sex = 'female';
$s->execute(); // execute with WHERE sex = 'female'
Nach dem Login kopieren

Hier bindet bindParam $sex als Referenz. Wenn die Anweisung ausgeführt wird, verweist sie auf den aktuellen Wert von $sex, der in „female“ geändert wurde. Daher ruft die Abfrage Ergebnisse für „weibliche“ Studenten ab.

bindValue-Beispiel:

Nun untersuchen wir ein ähnliches Beispiel mit bindValue:

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindValue(':sex', $sex); // bind the variable's value using bindValue
$sex = 'female';
$s->execute(); // execute with WHERE sex = 'male'
Nach dem Login kopieren

In diesem Fall bindet bindValue den Wert von $sex zum Zeitpunkt der Bindung, der „männlich“ ist. Daher ruft die Abfrage immer Ergebnisse für „männliche“ Studenten ab, auch wenn der Wert von $sex später geändert wird. Dies zeigt das nicht referenzierende Verhalten von bindValue.

Das obige ist der detaillierte Inhalt vonbindParam vs. bindValue: Was ist der Hauptunterschied im PDO von PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage