Heim > Datenbank > MySQL-Tutorial > Warum schlägt „bindParam' mit konstanten Werten im PDO fehl?

Warum schlägt „bindParam' mit konstanten Werten im PDO fehl?

Barbara Streisand
Freigeben: 2024-12-05 03:21:10
Original
931 Leute haben es durchsucht

Why Does `bindParam` Fail with Constant Values in PDO?

bindParam-Fehler mit konstanten Werten in PDO

Beim Versuch, bindParam mit einem konstanten Wert wie PDO::PARAM_NULL zu verwenden, kann es sein, dass Entwickler Es kommt der Fehler „Parameter 2 kann nicht als Referenz übergeben werden.“

Code-Snippet mit dem Fehler

try {
    $dbh = new PDO('mysql:dbname=' . DB . ';host=' . HOST, USER, PASS);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
}
catch(PDOException $e)
{
    ...
}
$stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)');
$stmt->bindParam(':v1', PDO::PARAM_NULL); // --> Here's the problem
Nach dem Login kopieren

Lösung

Der Fehler tritt auf, weil bindParam eine Variable als Referenz verwendet und beim Aufruf keinen Wert abruft. Die richtige Methode zum Binden eines konstanten Werts ist bindValue.

Korrigierter Code

$stmt->bindValue(':v1', null, PDO::PARAM_INT);
Nach dem Login kopieren

Hinweis:

Verwendung vermeiden bindValue(':param', null, PDO::PARAM_NULL), da dies möglicherweise nicht der Fall ist zuverlässig.

Das obige ist der detaillierte Inhalt vonWarum schlägt „bindParam' mit konstanten Werten im PDO fehl?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage