我有一個從get檢索的關聯數組,我想用數組中的數據生成sql查詢字符串的「where子句」。如何從GET生成SQL查詢
$get_array = ['title'=>'abc', 'author'=>'John']
我創建了一個模板陣列具有不同的字符串不同的字段名稱,然後循環它通過get陣列產生的條款陣列:
$tpl = ['title' => 'title LIKE ?',
'author' => 'author LIKE ?',
];
$where_clause_array = [];
$binding_array = [];
foreach ($get_array as $field_name => $field_value){
foreach ($tpl as $table_field_title => $tpl_string) {
if ($field_name == $table_field_title) {
$where_clause_array[] = $tpl_string;
$binding_array[] = $field_value;
}
}
}
$clause_string = implode(' AND ', $where_clause_array);
因此,我會得到一個字符串像「標題喜歡?和作者喜歡?」。但我的問題是,我有一個條款串取兩個值,而不是一個:
'year_start=>2000', 'year_end=>2017'
'year BETWEEN ? AND ?'
我無法弄清楚如何將這個進入循環。
你是什麼意思「,但我的問題是,我有一個條款字符串需要兩個值而不是一個:「 – Beginner
我的循環只接受get_array中的一個元素,並且每次只附加一個字符串,但其中一個字符串需要2個元素,但不會與循環一起使用。 – reddy