我正在考虑实现一个函数来“构建” SQL 请求中的 WHERE
子句,如下所示:
"SELECT * FROM table $where"
使用如下所示的循环构建 $where
:
$arr=array("Id"=>"1","Time"=>"12:00");
function whereBuild($arr){
foreach ($arr as $key => $val){
$result.=$key.'="'.$val.'" AND ';
}
$result = substr($result, 0, -5); // removes last AND and spaces
return $result
}
$where = whereBuild($arr);
你觉得怎么样?这有什么意义吗?能否以更简单/更好的方式实现?
谢谢!
最佳答案
如果您在查询中始终使用 AND
,则可以构建一个数组和 implode返回时即可。
$arr = array("Id"=>"1","Time"=>"12:00");
function whereBuild($arr){
$result = array();
foreach ($arr as $key => $val){
$result[] = $key.'="'.$val.'"';
}
return implode(" AND ", $result);
}
$where = whereBuild($arr);
关于php - MySql "WHERE"生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14501644/