Ungültige parameter-Anzahl: Anzahl der gebundenen Variablen entspricht nicht Anzahl der Token
Ich habe eine Tabelle:
'Objekte' mit wenigen Spalten:
object_id (int, object_type:int, object_status:int, object_lati:float, object_long:float
Meine Abfrage ist :
$stmt = $db->query('SELECT o.object_id, o.object_type, o.object_status, o.object_lati, o.object_long FROM objects o WHERE o.object_id = 1');
$res = $stmt->fetch();
PDO wirft einen Fehler:
SQLSTATE[HY093]: Invalid parameter number: Anzahl der gebundenen Variablen nicht mit Anzahl der Gutscheine, die
Wenn ich auf Spalte entfernen object_lati
oder object_long
Abfrage funktionieren.
gibt es einen Grund, Sie nicht verwenden die ORM -?
Nun, diese Frage ist (indirekt) Gegenstand einer meta-post, kann es früher geschehen.
Nun, diese Frage ist (indirekt) Gegenstand einer meta-post, kann es früher geschehen.
InformationsquelleAutor Alex | 2010-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl diese Frage nicht ein echtes, wie der code bereitgestellt wird nie produzieren einen Fehler wie diese, es scheint, dass Google ist die Einnahme von Freude in senden Besucher auf dieser Seite. Für wen ist die Antwort, die folgt:
Kann dieses problem nie verursacht durch
query()
Methode nennen, wie es im wesentlichen gehört vorbereitete Anweisung.Den Fehler selbst ist ziemlich klar: "Anzahl der Gutscheine" steht für die Anzahl der
?
oder:name
Token in der Abfrage (die auch als "Platzhalter"), während "Anzahl der gebundenen Variablen" steht für die Variablen, die äther gebunden überbindValue
oder "bindParam, oder per "ausführen" (was technisch das gleiche). So, wenn man versucht zu binden, mehr Variablen als tokens in der Abfrage definiert, PDO löst diesen Fehler aus.Zum Beispiel, wenn es eine Abfrage vorbereitet, mit keine Token definiert werden, aber wir versuchen, Sie zu binden eine variable zu:
dann wird es zu sehr in der Fehlermeldung in der Frage, wie die Zahl der gebundenen Variablen (1) entspricht nicht der Anzahl der tokens (0).
Dieses problem zu lösen, man muss nur gezielt vergleichen Sie die Anzahl der Token in die vorbereitete Abfrage mit der Anzahl der Variablen, die gebunden waren an die Anweisung.
InformationsquelleAutor Your Common Sense
Versuchen Sie die Anweisung wie:
InformationsquelleAutor robertbasic
versuchen, diese stattdessen
oder Datensatz
InformationsquelleAutor pe4k