PDOStatement executeを利用するにあたってプリペアドステートメントを利用するときに
1つ目の条件はwhere id = '001'
2つ目の条件はwhere codes IN 'test1,test2,test3'
のようにphpに渡すパラメータがstringとarrayが混ざった状態2次元配列になるのですがこの時executeをしようとすると
Array to string conversionが発生してしまいます。
名前つきパラメータを利用して2次元配列で渡すのは仕様上無理な利用方法なのでしょうか?
phpは5.6 DBはmysqlです
名前つきパラメータでないと保守性が微妙な気がするので可能であればこれを利用したいです。
書いたコード
$dbh->prepare($sql)->execute($param) $sql = <<<EOF SELECT * FROM comp_d WHERE AND id = :id AND codes IN (:codes) EOF; $param = array ( 'id' => '001', 'codes' => array ( 0 => 'test1',1 => 'test2',2 => 'test3',3 => 'test4', ), )
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。