PHP/PDO: “number of bound variables does not match number of tokens”

Tag,

folgendes simples Statement:

führt auf folgenden Fehler:

SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

Diese Fehlermeldung ist ziemlich irreführend, denn ein Blinder sieht: Zwei Variabeln, zwei Tokens. Der Trick ist: PDO::prepare escaped. Das ist einer der Gründe für prepared statements mit PDO: Dass man sich nicht um Escaping kümmern muss. Das bedeutet aber unübersichtlicherweise auch, dass man nicht selbst escapen darf, und zwar gar nicht:

funktioniert. Man beachte die fehlenden Hochkommata um :gif und :id.

Leave a Reply

Your email address will not be published. Required fields are marked *

Ich erkläre mich damit einverstanden, dass alle eingegebenen Daten und meine IP-Adresse zum Zweck der Spamvermeidung durch das Programm Akismet in den USA überprüft und gespeichert werden. Weitere Informationen zu Akismet und Widerrufsmöglichkeiten.