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

PDO IN() 配列ステートメント AND プレースホルダー

SO でこのコードを見つけました。これは、PDO ステートメントと IN() ステートメントを一緒に使用するのに最適です。

リーリー

しかし、クエリに他のものを混ぜて次のようにするにはどうすればよいですか:

リーリー

これでうまくいくと思ったのですが、次のような結果になりました:

警告: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: 引数の数が無効です: バインド変数の数が 3 行目のタグの数と一致しません ($ stm 行)

期待どおりに動作させる方法はありますか?

Update が配列に対して実行されますが、まだ機能しません。..

P粉832490510P粉832490510332日前557

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

  • P粉216807924

    P粉2168079242023-10-24 17:57:03

    ここでの問題は、execute には 単一の 配列が必要であるということです。複数の配列を渡すことはできません。さらに悪いことに、配列をネストすることもできません。

    完璧な $values 配列がすでにあるので、プレースホルダー文字列を作成した後、それを再利用しましょう。

    リーリー

    返事
    0
  • P粉501007768

    P粉5010077682023-10-24 09:30:01

    ###解決###

    $values

    が配列の場合、これは機能するはずです: リーリー イラスト

    execute()

    パラメータ (この場合は配列) が必要です。 array_merge($values, array($product)) を追加すると、配列が作成され、最後に $product が追加されるため、クエリは正常に機能します。 ここでデモをご覧ください:

    http://ideone.com/RcClX

    返事
    0
  • キャンセル返事