ホームページ  >  に質問  >  本文

準備されたステートメント内のパラメーターの数が、bind_param によってバインドされた変数の数と一致しません。

<p>これが私のコードスニペットです: </p> <pre class="brush:php;toolbar:false;">$stmt = $mysqli->prepare("SELECT DISTINCT モデル FROM vehicle_types WHERE year = ? AND make = '?' モデルで注文します"); $stmt->bind_param('is', $year, $make); $stmt->execute();</pre> <p>$year と $make の値を出力すると値が表示されますが、このスクリプトを実行すると null 値が取得され、ログ ファイルに次の警告が表示されます。 <ブロック引用> <p>PHP 警告: mysqli_stmt::bind_param(): 変数の数がプリペアド ステートメントのパラメータの数と一致しません</p> </blockquote> <p>この場合、データベース内の年の型は int(10) なので、渡すために int 型に変換してみました。make は utf8_unicode_ci エンコーディングの varchar(20) です。何か足りないものはありますか? </p>
P粉578343994P粉578343994396日前400

全員に返信(1)返信します

  • P粉513316221

    P粉5133162212023-08-23 14:52:19

    準備されたステートメントは間違っています。次のようになります:

    リーリー

    ステートメントを準備するときは、各変数を引用符ではなく疑問符に置き換える必要があります。引用符内の疑問符はプレースホルダーとして認識されません。

    疑問符の数は、bind_param()

    の変数の数と同じである必要があります。

    返事
    0
  • キャンセル返事