php - MySql "WHERE"生成器

标签 php mysql where-clause

我正在考虑实现一个函数来“构建” 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/

相关文章:

MySQL WHERE 子句中整数的第一个数字

PHP Xdebug 问题 - date.timezone 和 session.save_path 未定义

php - 更改全额付款和定金付款语句的颜色 - Woocommerce 产品页面

php - mySql 中的有效或无效状态

mysql - SQL 语法错误 SelectWhere Like

python - 如何让 np.where 接受更多参数,以便它过滤 >、< 和 =;不仅仅是 > 和 <?

php - 类别未放置在正确的部分

c# - 将列表转换为逗号分隔的 MySQL 插入语句

当我有保持打开的 sleep 连接时 MySQL CPU 增加

mysql - 具有多个条件的单列 SQL 过滤