Hamunsch Geschrieben 18. April 2017 Teilen Geschrieben 18. April 2017 Ich komme bei einer Fehlermeldung nicht weiter. Es geht um einen INSERT-Befehl über PDO: $req = $db->prepare("UPDATE display SET inhalt = ':inhalt' WHERE id = :id"); $req->execute(array(':inhalt' => $this->data, ':id' => $_SESSION['aktuellesDisplay'])); gibt folgende Fehlermeldung aus: <b>Fatal error</b>: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in Der Inhalt der Variable id ist in meinem Beispiel 0 (Die Sessionvariable). Der Inhalt der Variablen data ist ein array aus serialisierten Formulareinträgen und sieht so aus: a:5:{s:6:"zeile1";s:0:"";s:6:"zeile2";s:5:"rewew";s:6:"zeile3";s:0:"";s:5:"menge";s:0:"";s:5:"preis";s:0:"";} Die Fehlermeldung sagt doch eigentlich aus, dass die Anzahl der Parameter im prepare-Bereich nicht mit der Anzahl der Parameter im execute-Bereich übereinstimmt, oder? Das ist hier aber der Fall. Sehe ich hier den Wald vor Bäumen nicht? Ich habe die : nicht vergessen und die Variablennamen sind gleich. Bitte um Hilfe... JimTheLion reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JimTheLion Geschrieben 18. April 2017 Teilen Geschrieben 18. April 2017 (bearbeitet) Moin, $req = $db->prepare("UPDATE display SET inhalt = :inhalt WHERE id = :id"); Nimm mal die ' um :inhalt weg. Wenn du den Wert als String kennzeichnest wird der Platzhalter nicht erkannt. Da du aber trotzdem 2 Parameter beim Execute mitschickst, wird da einer zu viel gesendet. Bearbeitet 18. April 2017 von PVoss Musashi94 reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hamunsch Geschrieben 18. April 2017 Autor Teilen Geschrieben 18. April 2017 Sehr gut, danke. Das war die Lösung. Das war mir nicht bewusst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.