mysqli: „Anzahl der Variablen stimmt nicht mit der Anzahl der Parameter überein“
Als Reaktion auf das Problem bei der Verwendung der vorbereiteten Anweisungen von mysqli: Die Ursache liegt in der falschen Syntax der vorbereiteten Anweisung. Wie in der Antwort erwähnt, behebt die folgende Korrektur das Problem:
$stmt = $mysqli->prepare( "SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model" ); $stmt->bind_param('is', $year, $make); $stmt->execute();
Bei der Erstellung einer Stellungnahme ist es wichtig, Platzhalter für Eingabedaten mit Fragezeichen zu versehen. Allerdings war in der ursprünglichen Anweisung der Platzhalter für die Make-Variable in Anführungszeichen gesetzt, sodass er nicht als Platzhalter erkennbar war. Folglich stimmte die Anzahl der Fragezeichen nicht mit der Anzahl der Variablen in bind_param() überein.
Daher beseitigt die korrigierte vorbereitete Anweisung diese Diskrepanz, indem die Anführungszeichen um das ? entfernt werden. Platzhalter, der die ordnungsgemäße Bindung von Eingabevariablen mithilfe von bind_param() ermöglicht. Dadurch wird sichergestellt, dass die Anweisung erfolgreich ausgeführt werden kann und die gewünschten Ergebnisse liefert.
Das obige ist der detaillierte Inhalt vonWarum verursachten nicht übereinstimmende Variablen und Parameter einen Fehler in vorbereiteten MySQL-Anweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!