关于ThinikPHP5框架如何实现模型调用动态SQL查询的方法

本文介绍了一种使用PHP实现动态SQL查询的方法。通过数组存储查询条件并利用模型进行查询,结合自定义过滤函数移除null或空字符串参数,有效实现动态查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,直接上码:

 /**$name,$isopen为传递的参数*/
 
function getUrl($name,$isopen){
    $VvRequest = model("HSwitch"); //创建模型
    $map = array();//定义数据查询
    $map = ["name"=>$name
            ,"isopen"=>$isopen
     ];
    $map = array_filter($map,array($this,'filtrfunction'));//移除掉参数为null或者''的键
    $Vv = $VvRequest->where($map)->field("isopen,url")->select();//查询数据
}

//回调函数,避免移除掉带有false和0的数组
function  filtrfunction($arr){
    if($arr === '' || $arr === null){
        return false;
    }
    return true;
}

思路:

以数组存储查询条件,然后利用模型进行查询。那么我们要的就是怎么判断数组里面的参数是null或者’’,如果是则把这个对应的键移除掉,这样一来就达到了实现动态sql查询的效果

方法解释:

  1.array_filter(数组,[回调函数])函数是PHP自带的函数,如果不写回调函数的话,这个功能默认是会移除掉你传递进去的数组中的值为null,0,false以及""。具体例子自行百度即可。
  2. filtrfunction(参数)  这是一个自定义的函数,具体功能就是根据传递的值判断里面的值是否为null或者''则返回false,因为array_filter的这个回调函数的原理是如果返回false,则会将对应的键和值删除掉。
  3.具体调用方式便是array_filter($map,array($this,'filtrfunction'));
  4.如此一来便可实现了通过这个方式清除掉数组中的null和'',最终实现动态sql的查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值