Ich habe ein Problem mit meiner vorbereiteten Aussage, ich habe Stack für die Antwort durchsucht und versuchte viele von ihnen sie vergebens, ich habe die Insert-Anweisung überprüfen, die korrekt ist, habe ich auch versucht, mit der Aussage als reguläre Aussage, die, der Fehler, den ich als Mysqli Bind_Param Fehler
Fatal error:call to function bind_param()on a non object in ** on line 23
Wenn ich eine normale Abfrage auf der ersten Abfrage verwenden, die zweite zeigt nicht den Fehler
der Code ist
unten zu arbeiten scheintpublic function reg_user($name,$username,$password,$email){
$password = password_hash($password);
$stmt = $this->db->prepare("SELECT uid FROM users WHERE uname= ? OR uemail = ?");
$stmt->bind_param("ss", $username,$email);
$stmt->execute();
$count_row = $stmt->num_rows;
if($count_row == 0){
$stmt = $this->db->prepare("INSERT INTO users (uname,upass,fullname,uemail) VALUES(?,?,?,?)");
$stmt->bind_param("ssss", $username,$password,$name,$email); //line 23
$return = $stmt->execute();
return $return;
} else{
return false;
}
}
Sie zu bekommen versuchen, kann nicht mehrere Parameter gleichzeitig binden. Sie sollten sie als ein Array in 'execute()' übergeben oder jedes Mal einen Parameter binden. Ersteres ist modularer und weniger redundant – Terry
Der Fehler kann nicht in Zeile 23 sein - der Code hat nur 15 Zeilen! –
Ja, aber es ist Teil einer Klasse, die mehr Zeilen hat, es ist sinnlos, die volle Klasse zu veröffentlichen, wenn dies die Funktion ist, die den Fehler hat –