Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySql“;其中;建设者_Php_Mysql_Where - Fatal编程技术网

Php MySql“;其中;建设者

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

我正在考虑实现一个函数来“构建”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);
你觉得怎么样?这有什么意义吗?能否以更简单/更好的方式实现


谢谢你

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

$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,”);我已经更新了代码,谢谢你的更正!一般来说,这是一种“好的做法”吗?还是“糟糕的编码”?我刚刚想到了它,由于我没有什么经验,我不知道这种逻辑的最终缺点。我已经用
更新了代码,但是,正如上面的评论所提到的,我的主要问题是,这是否是正确的方法。还是“糟糕的编码”?我只是想到了它,因为我没有什么经验,我不知道这种逻辑的最终缺点。。