dedlfix: Fehlermeldung bei UPDATE von Datensatz

Beitrag lesen

echo $begrüßung;

$kommando = $db->prepare($aendern);
     $kommando->bind_param('sssi', $_POST['name'], $_POST['ort'], $_POST['eintrag'], $id);

Dies bewirkt die Fehlermeldung "Fatal error: Call to a member function bind_param() on a non-object in ..."

Die Meldung besagt, dass eine Methode (Funktion) eines Objekts aufgerufen werden soll, aber gar kein Objekt vorliegt. Genauer gesagt: $kommando ist kein Objekt.

Ich habe nun versucht, so wie mir es dedlfix beigebracht hat, eine Fehleranalyse zu betreiben. Deshalb habe ich mit "var_dump" bei den 4 Parameter/Variablen eine Kontrollausgabe gemacht.

Mach die Kontrollausgabe auf $kommando, dann siehst du, dass es kein Objekt ist. Die Ursache ist eine Zuweisung, die nicht so ausgeführt wurde, wie du dir das vorgestellt hast. Es muss also von $db->prepare($aendern) etwas unerwartetes zurückgegeben worden sein. Nun kommt das PHP-Handbuch ins Spiel, dass dich darüber aufzuklären versucht, in welchen Fällen mysqli::prepare() dieses unerwartete Ergebnis liefert und auch im Beispiel zeigt, wie man den Folgefehler unterbinden kann, indem man auf die Eigenschaften des von mysqli::prepare() zurückgegebenen Objekts nur im Gut-Fall zugreift.

Die eigentliche Fehlerursache findest du übrigens in $db->error (siehe auch mysqli::error).

echo "$verabschiedung $name";