Konstanten an bindParam übergeben: Fehler und Lösung
In PDO ermöglicht die bindParam-Methode das Binden von Variablen an Anweisungsparameter durch Referenz. Beim Versuch, konstante Werte wie PDO::PARAM_NULL zu binden, kann jedoch der Fehler „Parameter 2 kann nicht als Referenz übergeben werden“ auftreten.
Fehlerursache:
bindParam erfordert eine Variable als zweites Argument, die per Referenz an den Parameter gebunden wird. Der Versuch, einen konstanten Wert direkt zu übergeben, löst den Fehler aus, da Konstanten nicht als Referenz übergeben werden können.
Lösung:
Um konstante Werte an Anweisungsparameter zu binden, verwenden Sie bindValue Methode statt. bindValue bindet Variablen nach Wert, d. h. es kopiert den Wert zum Zeitpunkt des Aufrufs der Methode, anstatt eine Referenz zu erstellen.
Geänderter Code:
$stmt->bindValue(':v1', null, PDO::PARAM_NULL);
Durch die Verwendung bindValue können Sie konstante Werte korrekt an Anweisungsparameter binden, ohne dass der Fehler „Parameter 2 kann nicht als Referenz übergeben werden“ auftritt. Denken Sie daran, PDO::PARAM_NULL für Nullwerte zu verwenden, nicht PDO::PARAM_INT oder ''.
Das obige ist der detaillierte Inhalt vonWarum schlägt „bindParam' mit Konstanten in PDO fehl und wie lässt sich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!