mysqli_stmt::bind_param を使用するときに発生する一般的なエラーは、指定されたパラメータの数と、準備された SQL クエリ内のプレースホルダー (疑問符) の数。正しく配置されていることを確認する方法は次のとおりです。
bind_param() の型定義文字列は、各パラメーターのデータ型を表す文字のシーケンスで構成されます。文字列内の各文字は、準備されたクエリ内の 1 つのプレースホルダーに対応する必要があります。例:
$stmt->bind_param("sss", $one, $two, $three);
上の例では、型定義文字列「sss」に 3 つの「s」文字が含まれており、3 つのパラメータ ($one、$two、$three) がすべて文字列であることを示しています。準備されたクエリには、この定義に一致する次のような 3 つのプレースホルダーが含まれている必要があります。
$stmt->prepare("INSERT INTO table (one, two, three) VALUES (?,?,?)");
型定義文字列の文字数がクエリ内のプレースホルダーの数と一致しない場合、bind_param() は変数の数がプレースホルダーの数と等しくないことを示すエラー。
適切な実行を保証するには、型定義文字列の文字数がその数と一致することを常に確認してください。準備されたクエリ内のプレースホルダーの数。
以上がパラメータとプレースホルダの数が一致しない場合に「mysqli_stmt::bind_param」が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。