In Ihrem bereitgestellten Codeausschnitt ist die Warnung, auf die Sie gestoßen sind, auf eine Nichtübereinstimmung zwischen zurückzuführen Anzahl der Variablen in Ihrer bind_param()-Methode und die Anzahl der Parameter in Ihrer vorbereiteten Anweisung. Um dieses Problem zu lösen, muss unbedingt sichergestellt werden, dass diese beiden Zahlen übereinstimmen.
Die vorbereitete Anweisung, die Sie ursprünglich verwendet haben:
$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = '?' ORDER by model");
enthält einen Fehler. Der Platzhalter für den Make-Parameter ist fälschlicherweise in Anführungszeichen („?“) eingeschlossen. In vorbereiteten Anweisungen sollten Platzhalter durch Fragezeichen ohne Anführungszeichen gekennzeichnet werden.
Die korrigierte vorbereitete Anweisung:
$stmt = $mysqli->prepare(" SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model ");
hat jetzt zwei Platzhalter, die den beiden Variablen in Ihrer bind_param()-Methode entsprechen:
$stmt->bind_param('is', $year, $make);
Indem Sie die falschen Anführungszeichen um den Make-Platzhalter entfernen, gleichen Sie die Anzahl der Variablen und Parameter an und beheben so den Nichtübereinstimmungsfehler.
Das obige ist der detaillierte Inhalt vonWie kann eine Nichtübereinstimmung der Bindungsparameternummern in vorbereiteten Anweisungen behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!