どうも、なおや(@naoya2_2)です。
仕事上の開発で、SQLのIN句に配列を渡したかったのですが苦戦したのでメモしておきます。

実行したいSQL
SELECT COUNT(*) FROM user WHERE id IN (100, 200, 300) AND name = 'NAOYA';
このIN句に配列をそのまま渡しても、配列を文字列に変換して入れ込もうとしてもうまくいきませんでした。
結論、以下の方法で解決です。
【解決】FuelPHPでの記述
FuelPHP
$user_ids = array(100, 200, 300); $name = 'NAOYA'; $sql = SELECT COUNT(*) FROM user WHERE id IN :user_ids AND name = :name; $params = array('user_ids' => $user_ids); $dbQuery = DB::query($sql); $dbQuery->bind(':name', $name); $dbQuery->parameters($params); $result = $dbQuery->execute()->as_array();
これで想定通りの動きをしました。
高橋直也(@naoya2_2)
フリーランスエンジニア。SEとして主に某企業顧客管理システムの開発、改修を担当している。ブログでは30歳未経験からSESを経てフリーランスになった経緯等を発信中。以前はブログの運営やライティングを教える講師としても活動。