MySql"WHERE"构建器

don*_*don 2 php mysql where

我正在考虑实现一个函数来"构建" WHERESQL请求中的子句,如下所示:

"SELECT * FROM table $where"
Run Code Online (Sandbox Code Playgroud)

$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);
Run Code Online (Sandbox Code Playgroud)

你怎么看?它有意义吗?它能以更简单/更好的方式实现吗?

谢谢!

Aar*_* W. 5

如果您始终AND在查询中使用,则可以构建一个数组并在返回时将其内.

$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);
Run Code Online (Sandbox Code Playgroud)