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.