Behandlung des Fehlers „Erwartet eine Referenz zu sein“ in mysqli bind_param()
Die Fehlermeldung „Parameter 3 to mysqli_stmt::bind_param( ) wird als Referenz erwartet, Wert angegeben“ entsteht, wenn ein Wert an eine vorbereitete Anweisung gebunden wird. Um dieses Problem zu beheben, muss der bereitgestellte Wert eine Referenz auf eine tatsächliche Variable und nicht der Wert selbst sein.
Im bereitgestellten Codeausschnitt enthält das Array $params Werte, die keine Referenzen sind. Um die Werte korrekt zu binden, können Sie den folgenden Ansatz verwenden:
$query = "INSERT INTO test (id,row1,row2,row3) VALUES (?,?,?,?)"; $param_type = "isss"; // PHP 7+ $sql_stmt = mysqli_prepare($mysqli, $query); mysqli_stmt_bind_param($sql_stmt, $param_type, ...$params); // PHP 5.6 - 7.0 $sql_stmt = mysqli_prepare($mysqli, $query); $arr = array($sql_stmt, $param_type); foreach ($params as $param) { $arr[] = &$param; } call_user_func_array('mysqli_stmt_bind_param', $arr); mysqli_stmt_execute($sql_stmt);
Verwendung von Referenzen
In PHP 5.3 und niedriger sind Referenzen für die Bindung von Werten nicht erforderlich zu einer vorbereiteten Stellungnahme. Ab PHP 5.4 sind Referenzen jedoch obligatorisch. Der Grund für diese Änderung besteht darin, unerwünschtes Kopieren von Variablen und potenzielle Speicherlecks zu verhindern.
Durch die Verwendung von Referenzen wird der Bindungsprozess effizienter, da die gebundenen Werte direkt geändert werden, sodass keine zusätzlichen Variablenzuweisungen erforderlich sind.
Fazit
Denken Sie daran, dass Sie übergeben müssen, wenn Sie mysqli bind_param() mit Werten verwenden, die keine Referenzen sind Verwenden Sie sie als Referenzen oder verwenden Sie alternative Ansätze, um Werte richtig zu binden. Dies gewährleistet eine effiziente und fehlerfreie Ausführung Ihrer SQL-Abfragen.
Das obige ist der detaillierte Inhalt vonWie löse ich den Fehler „Es wird erwartet, dass es sich um eine Referenz handelt' in mysqli bind_param()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!