Wodurch kommt diese Fehlermeldung zustande?

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.


DeathNoteGood 
Fragesteller
 11.08.2018, 20:07

Ich übergebe aber nur Strings und integer

0
pythonpups  11.08.2018, 20:54
@DeathNoteGood

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.

0
DeathNoteGood 
Fragesteller
 11.08.2018, 21:05
@pythonpups

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);

0
pythonpups  11.08.2018, 21:14
@DeathNoteGood

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.

0