Tach!
Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in
Wenn du eine Variable hast, in der kein Objekt sondern etwas anderes steckt, kannst du keine Funktionen des gewünschten Objektes aufrufen. In diesem Fall hast du statt des gewünschten Objekts einen booleschen Wert in der Variable. Und das liegt daran, dass die Stelle, an der du die Zuweisung zur Variable vornimmst, etwas anderes liefert.
$sql = "UPDATE prisma SET geprueft = ? , img = ? , shortlink = ? WHERE id = ?";
Dabei gibt es anscheinend ein Problem ...
$stmt = $con->prepare($sql);
... das dazu führt, dass das prepare nicht zufriedenstellend laufen konnte und damit kein Statement-Objekt liefert, sondern den Wert false
. Das PHP-Handbuch erklärt nicht nur die Verwendungsweise von Funktionen, es gibt auch immer mit an, was im Fehlerfall zu erwarten ist. Das muss man beachten, wenn man robuste Programme schreiben möchte. Fehlerbehandlung ist oftmals länger als die eigentliche Lösung der Aufgabe.
Ich finde den Fehler einfach nicht?
Da das kein PHP-Fehler ist, sondern einer, der in der Datenbank aufgetaucht ist, gibt es keine PHP-Fehlermeldung, sondern nur den oben gezeigten Folgefehler.
Fehler im DBMS können immer entstehen, auch wenn du alle offensichtlichen Ursachen beseitigt hast. Andere Fehler, die sporadisch auftreten könenn, sind zum Beispiel Verbindungsfehler oder Timeout oder Speicher alle. Du solltest dich und dein Programm darauf einstellen, dass sie auftreten können, und entsprechend reagieren, statt quasi nur auf Sonnenschein zu setzen.
Wie kommst du nun an die Ursache? Den Meldungstext zur Ursache, wenn die Funktion mit false abbricht, findest du im Objekt, das in $con steckt. Da gibt es Eigenschaften oder Funktionen, die dir den Text liefern. Sieht bei dir nach mysqli aus, dann ist das die Eigenschaft $error.
dedlfix.