Das Geheimnis der nicht übereinstimmenden Bind-Variablen
Die Frage dreht sich um einen Fehler, der beim Binden von Parametern für eine umfangreiche MySQL-vorbereitete Anweisung auftritt. Das Problem liegt in der Diskrepanz zwischen der Anzahl der Indikatoren vom Typ „s“ in der bind_param-Methode und der Anzahl der Fragezeichen (?) in der Abfragezeichenfolge.
Bind_param() verstehen
bind_param() ist eine MySQLi-Methode, die Fragezeichen (?) in einer vorbereiteten Abfrage durch tatsächliche Daten ersetzt. Jedes Zeichen in der Typdefinitionszeichenfolge (z. B. „s“ für Zeichenfolge) entspricht einem Fragezeichen und den zu bindenden Daten.
Übereinstimmung mit der Anzahl der Bindungsvariablen
Der entscheidende Punkt, den Sie beachten sollten, ist, dass die Anzahl der Zeichen in der Typdefinitionszeichenfolge (z. B. „s,s,s“) genau mit der Anzahl der Fragezeichen (?) in der Abfragezeichenfolge übereinstimmen muss. Beispielsweise erfordert eine Abfrage mit drei Fragezeichen eine Typdefinitionszeichenfolge mit drei „s“-Zeichen.
Untersuchung des Codes
Im angegebenen PHP-Code die Abfrage Die Zeichenfolge enthält 65 Fragezeichen, aber die Methode bind_param() verwendet „s,s,s,s,s,s,s,s“ (insgesamt nur 8 „s“-Zeichen). Diese Diskrepanz führt zur Fehlermeldung: „Anzahl der Elemente in der Typdefinitionszeichenfolge stimmt nicht mit der Anzahl der Bindungsvariablen überein.“
So lösen Sie das Problem:
Zu Um das Problem zu beheben, stellen Sie sicher, dass die Anzahl der „s“-Zeichen in der bind_param()-Methode mit der Anzahl der Fragezeichen (?) in der Abfragezeichenfolge übereinstimmt. In diesem Fall sollte die bind_param()-Methode ersetzt werden durch:
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWarum schlägt meine vorbereitete MySQL-Anweisung mit dem Fehler „Anzahl der Elemente in der Typdefinitionszeichenfolge stimmt nicht mit der Anzahl der Bindevariablen überein' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!