Hallo,
if(isset($_POST["submit2"])): echo $_POST["Wert"]; echo $_POST["into"]; echo $_POST["ID2"]; $Wert = $_POST["Wert"]; $into = $_POST["into"]; $ID2 = $_POST["ID2"]; $absenden2 = $mysqli->prepare("UPDATE playmobil SET ? = '?' WHERE ID=?"); $absenden2->bind_param("ssi", $Wert, $into, $ID2); <!-- Zeile 150--> $absenden2->execute(); $absenden2->close(); endif;
Warum erhalte ich diese Fehlermeldung
Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in D:\Programme\XMAPP\htdocs\playmobil.php:150 Stack trace: #0 {main} thrown in D:\Programme\XMAPP\htdocs\playmobil.php on line 150
steht doch (fast) alles in der Fehlermeldung: Du versuchst, eine Methode bind_param() von einem boolean aufzurufen, anstatt einem mysqli-Objekt.
Und wie kommt das? Weil du jegliche Fehlerüberprüfung weglässt und dich blind darauf verlässt, dass alle Methodenaufrufe erfolgreich sind.
Die mysql- und mysqli-Funktionen sind bekannt dafür, dass sie im Fehlerfall ein stumpfes boolsches false zurückgeben anstatt einer mysql(i)-Ressource. Genau das muss beim Aufruf von prepare() passiert sein, $absenden2 ist also false.
Abgesehen davon: Warum kopierst du die Werte aus $_POST[] erst um, bevor du sie verwendest? Das ist nicht nur unnötig, sondern manchmal auch tückisch, weil man damit die Herkunft verschleiert.
So long,
Martin
Ich stamme aus Ironien, einem Land am sarkastischen Ozean.