Php MySql“;其中;建设者
我正在考虑实现一个函数来“构建”SQL请求中的Php MySql“;其中;建设者,php,mysql,where,Php,Mysql,Where,我正在考虑实现一个函数来“构建”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
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);
你觉得怎么样?这有什么意义吗?能否以更简单/更好的方式实现
谢谢你 如果在查询中始终使用
和,则可以构建一个数组,并在返回时将其保存
$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);
您不能在查询中使用&&。使用和。替换和执行rtrim的“最后”和“移除($where,”);我已经更新了代码,谢谢你的更正!一般来说,这是一种“好的做法”吗?还是“糟糕的编码”?我刚刚想到了它,由于我没有什么经验,我不知道这种逻辑的最终缺点。我已经用和更新了代码,但是,正如上面的评论所提到的,我的主要问题是,这是否是正确的方法。还是“糟糕的编码”?我只是想到了它,因为我没有什么经验,我不知道这种逻辑的最终缺点。。