Wodurch kommt diese Fehlermeldung zustande?
Quellcode: https://pastebin.com/ymN02220
Fehlermeldung: Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in /mnt/web416/c0/01/59361801/htdocs/webseite/register.php:48 Stack trace: #0 {main} thrown in /mnt/web416/c0/01/59361801/htdocs/webseite/register.php on line 48
2 Antworten
Die vorausgehende prepare hat einen fehler. Ich tippe auf die values, die kannst du weglassen
So weit ich das erkennen kann geht es um Datenbankzugriff via PDO. bind_param() sollte eine Methode eines von PDO abgeleiteten Objekts sein. Damit bindet man Daten an ein vorbereitetes SQL-Statement. Du oder wer auch immer versucht allerdings offenbar, es stattdessen auf einer Variable aufzurufen, die kein Objekt sondern einen boolean-Wert (true/false) enthält.
Was Du an bind_param übergibst spielt keine Rolle. Du machst vermutlich sowas wie $xy->bind_param(...). In $xy müsste dazu ein Objekt stecken. Stattdessen ist das ein boolean. Der kennt die Methode nicht, deshalb der Fehler. Normalerweise machst Du ein prepare vorher, das Dir ein entsprechendes Objekt zurückgibt. Wenn das stattdessen false zurückgegeben hat, weil z.B. das Statement nicht OK war, dann hast Du Deine Ursache.
aber was ist an dem statement nicht ok
Statement :
$insert = $connect->prepare("INSERT INTO user_data2(username, email, password, ip, Straße, Stadt, PLZ) VALUES(?,?,?,?,?,?,?)");
$insert->bind_param('ssssssi', $username, $email, $password, $ip_string, $straße, $stadt, $PLZ);
Nicht sicher, ob das Komma vor der Klammer relevant ist. Wie auch immer, kenne Deine Tabelle nicht. Führ ein passendes Statement doch mal von Hand aus, vielleicht hilft Dir die Fehlermeldung weiter.
Ich übergebe aber nur Strings und integer