PHPからMySQLにPDOでクエリを投げる際、INやNOT INにbindする際には工夫が必要なことは理解しました。
参考:https://qiita.com/tmasu/items/7a3534a09ef591428a3f
上記サイトより
PHP
1try { 2 $user_id = '1,3,5'; 3 $user_ids = explode(',', $user_id); 4 $dbh = new PDO('mysql:host=localhost;dbname=test', 'dbuser', 'pass'); 5 6 $sql = 'SELECT * FROM history '; 7 $sql .= 'WHERE user_id IN (' . substr(str_repeat(',?', count($user_ids)), 1) . ')'; 8 $stmt = $dbh->prepare($sql); 9 $stmt->execute($user_ids); 10 11 var_dump($stmt->fetchAll(PDO::FETCH_ASSOC)); 12} catch (Exception $e) { 13 print "error!! " . $e->getMessage() . PHP_EOL; 14}
こちら、1つのSQL文で2つのIN(NOT IN)にbindしたい場合、どの様に記述すれば良いのでしょうか?
(例)
tableのカラム:id,name,flag
行いたいSQL
MySQL
1SELECT `id` FROM `table` WHERE `name` NOT IN (*ここを変数で指定*) AND flag IN (*ここも変数で指定*)
回答1件
あなたの回答
tips
プレビュー