mysqli update : Problem mit bind_param
Pflegel
- datenbank
- php
1 dedlfix
hallo,
ich habe ein Problem mit einem SQL Befehl den Update. Eigentlich ist es ein einfaches UPDATE
$sql = "UPDATE urldaten SET ? = ?, ? = ?, ? = ? WHERE id = ?";
$statement = $mysqli->prepare($sql);
$statement->bind_param('ssssssi',
$sql_title, $titel,
$sql_url, $url,
$sql_meta, $desc,
$id);
Die Fehlermeldung heißt:
Fatal error: Call to a member function bind_param() on boolean in ...
Alle Stings sind gefüllt und ich finde den Fehler nicht.
Tach!
Fatal error: Call to a member function bind_param() on boolean in ...
Das ist nur die PHP-Meldung und die ist ein Folgeproblem. Du hast in der Variable ein Boolean und nicht das erwartete Objekt. Da ist bereits eher etwas unerwartetes passiert. MySQL-Fehler werden nicht wie PHP-Fehler direkt ausgegeben, sondern müssen geholt werden, wenn eine Funktion über ihren Rückgabewert einen Fehler signalisiert. Man sollte immer im Handbuch nachlesen, was im Gut- und im Fehlerfall zurückgegeben wird. Du kannst nicht einfach so hintereinanderweg deine Aufgabe abarbeiten, du musst auch immer prüfen, ob das vielleicht nicht erfolgreich war.
$sql = "UPDATE urldaten SET ? = ?, ? = ?, ? = ? WHERE id = ?";
So funktioniert das mit den Prepared Statements nicht. Bezeichner (Feldnamen in dem Fall) müssen hingeschrieben werden. Nur Werte können über den Prepared-Statements-Mechanismus übergeben werden.
dedlfix.