PDO が WHERE IN 句のパラメータのバインドに失敗するのはなぜですか?

Susan Sarandon
リリース: 2024-11-18 02:37:02
オリジナル
599 人が閲覧しました

Why Does PDO Fail to Bind Parameters in WHERE IN Clauses?

PDO を使用して WHERE IN 句のパラメータをバインドできない

コードは PDO を使用して WHERE IN 句のパラメータをバインドしようとしていますが、一貫してカウント 1 が返されます。パラメータ化された値を変数自体に置き換えると、正確なカウントが得られます。この矛盾は、PDO が IN 句のパラメータを効果的にバインドできないために発生します。

指定された配列はカンマ区切りの文字列に分解され、パラメータ値として割り当てられます。ただし、データベースは、

SELECT foo FROM bar WHERE ids IN ('1,2,3')
ログイン後にコピー

を使用する場合と同様に、この文字列を単一の値として解釈します。複数の値が存在するにもかかわらず、データベースはそれを単一の文字列として扱います。この問題を解決するには、クエリに IN リストを手動で挿入する必要があります。

'SELECT foo FROM bar WHERE ids IN (' . $myArray .')'
ログイン後にコピー

この方法により、各配列要素が IN 句に適切に含まれるようになります。残念ながら、現時点では、PDO を使用して WHERE IN 句内のパラメータをバインドするための他の実行可能な解決策はありません。

以上がPDO が WHERE IN 句のパラメータのバインドに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート