Heim  >  Artikel  >  Backend-Entwicklung  >  Warum verursachten nicht übereinstimmende Variablen und Parameter einen Fehler in vorbereiteten MySQL-Anweisungen?

Warum verursachten nicht übereinstimmende Variablen und Parameter einen Fehler in vorbereiteten MySQL-Anweisungen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-22 10:57:03172Durchsuche

Why Did Mismatched Variables and Parameters Cause an Error in mysqli Prepared Statements?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn