単一のクエリで実行したい条件がいくつかあります。基本クエリ:
$query = "select * from table1
inner join
table2 on table1.id=table2.id
where
".$condition."
limit 0,100;";
クエリする値の配列があります:
$Var = array(
1 => array('name' => 'somename1','value' => 'somevalue1'),
2 => array('name' => 'somename2','value' => 'somevalue2'),
3 => array('name' => 'somename3','value' => 'somevalue3'),
4 => array('name' => 'somename4','value' => 'somevalue4')
)
今ループ中
foreach($Var as $Array){
$condition .= '(T1_column1 = '.$Array['name'].' and T2_column1 = '.$Array['value'].') or ';
}
最終結果:
$query = "select * from table1
inner join
table2 on table1.id=table2.id
where
(T1_column1 = somename1 and T2_column1 = somevalue1) or
(T1_column1 = somename2 and T2_column1 = somevalue2) or
(T1_column1 = somename3 and T2_column1 = somevalue3) or
(T1_column1 = somename4 and T2_column1 = somevalue4)
limit 0,100;";
PDO: prepare,bindvalue,execute を使用して同じことを行う方法はありますか? またはforeachループのbindValueは同じ効果がありますか? これどうやってするの?