Heim >Backend-Entwicklung >PHP-Tutorial >Warum benötigt „mysqli_stmt::bind_param()' Referenzen und wie kann ich den Fehler „Parameter erwartet eine Referenz sein' beheben?
Fehlerbehebung bei „mysqli bind_param() Parameter Expected to be a Reference“-Fehlern
Der Fehler „Parameter 3 to mysqli_stmt::bind_param()“ Es wird erwartet, dass es sich um eine Referenz handelt, der angegebene Wert weist auf eine Diskrepanz zwischen dem erwarteten Eingabetyp und dem bereitgestellten Wert in hin mysqli_bind_param()-Methode.
Im angegebenen Code verwenden Sie call_user_func_array(), um ein Array von Werten an mysqli_stmt_bind_param() zu übergeben. Allerdings erwartet mysqli_bind_param(), dass die Parameter als Referenz übergeben werden, während call_user_func_array() entweder Referenzen oder Werte akzeptiert.
Um dieses Problem zu beheben, können Sie die folgende in der PHP-Dokumentation bereitgestellte Lösung verwenden:
$refs = array(); foreach ($params as $key => $value) $refs[$key] = &$params[$key]; call_user_func_array(array($statement, 'bind_param'), $refs);
Dieser Code erstellt ein Array von Referenzen ($refs) auf die Elemente im $params-Array und übergibt die $refs-Array an mysqli_stmt_bind_param(), um sicherzustellen, dass die Parameter als Referenz übergeben werden.
Alternativ können Sie den Spread-Operator (verfügbar in neueren PHP-Versionen) verwenden, um die Elemente des $params-Arrays direkt als Referenzen zu übergeben :
call_user_func_array(array($statement, 'bind_param'), ...$params);
Das obige ist der detaillierte Inhalt vonWarum benötigt „mysqli_stmt::bind_param()' Referenzen und wie kann ich den Fehler „Parameter erwartet eine Referenz sein' beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!