Pflegel: mysqli update : Problem mit bind_param

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.

  1. 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.