Ich habe versucht, den gleichen Code auf meinem lokalen App Engine Server und diese, wo meine Erkenntnisse laufen:
Originalcode:
$stmt = $this->conn->prepare("INSERT INTO users(name) values(?)");
$stmt->bind_param("s", "dhieaj");
$result = $stmt->execute();
echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
// User successfully inserted
return USER_CREATED_SUCCESSFULLY;
}
Experimente:
$stmt->bind_param("s", "dhieaj");
// failed with error (<b>Fatal error</b>: Cannot pass parameter 2 by reference in <b>C:\...)
so ich mod ified die Zeile:
$param="dhieaj";
$stmt->bind_param("s", $param);
Nächster Fehler ich erhielt, war für: echo $ stmt-> errorinfo(); // (Aufruf an undefinierte Methode mysqli_stmt :: errorInfo()) Also habe ich die Zeile kommentiert.
Dann habe ich Ihre Return-Anweisung zu echo geändert, da meins nur ein Fragment ist, wie von Ihnen gepostet.
Ich bemerkte auch, dass Ihr conn den '$' Deklarationsschlüssel fehlte. ($ conn).
finale Code:
$stmt = $conn->prepare("INSERT INTO users(firstname) values(?)");
$p="dhieaj";
$stmt->bind_param("s", $p);
$result = $stmt->execute();
// echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
// User successfully inserted
echo "USER_CREATED_SUCCESSFULLY";
}
Überprüfen Sie, ob Ihre Datenbankverbindung erfolgreich war. – DLastCodeBender
Meine Datenbankverbindung war erfolgreich.Aber nach $ stmt-> bind_param() statment gibt es keine Logs. Ich habe die Spaltennamen identisch gefunden.Kann debuggen oder einen Fehler ausgeben was nach Bind_param statement passiert – Techiee
Add 'ini_set ('display_errors ", 1); ini_set ('log_fehler', 1); error_reporting (E_ALL); mysqli_report (MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 'an die Spitze Ihres Skripts. Dadurch werden alle mysqli_-Fehler auf generiert eine Ausnahme, die Sie im Browser sehen können und andere Fehler werden auch in Ihrem Browser sichtbar sein. – RiggsFolly