PDO IN() 配列ステートメント AND プレースホルダー
P粉832490510
P粉832490510 2023-10-23 21:43:13
0
2
635

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

リーリー

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

リーリー

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

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

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

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

P粉832490510
P粉832490510

全員に返信(2)
P粉216807924

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

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

リーリー
いいねを押す +0
P粉501007768

###解決###

$values

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

execute()

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

http://ideone.com/RcClX

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート