提供されたコード スニペットで発生した警告は、 bind_param() メソッド内の変数の数と、準備されたステートメント内のパラメータの数。この問題を解決するには、これら 2 つの数値が一致していることを確認することが重要です。
最初に使用した準備済みステートメント:
$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = '?' ORDER by model");
にはエラーが含まれています。 make パラメータのプレースホルダが誤って引用符 (「?」) で囲まれています。プリペアド ステートメントでは、プレースホルダーは引用符なしの疑問符で表す必要があります。
修正されたプリペアド ステートメント:
$stmt = $mysqli->prepare(" SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model ");
には、bind_param() メソッドの 2 つの変数と一致する 2 つのプレースホルダーが含まれています。
$stmt->bind_param('is', $year, $make);
make プレースホルダーの周囲の誤った引用符を削除することで、変数とパラメーターの数を揃え、不一致エラーを解決します。
以上が準備されたステートメントのバインディング パラメーター番号の不一致を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。