TP5多条件查询的一个坑,请教下各位大神咋解决!

浏览:7601 发布日期:2016/12/15 分类:ThinkPHP5专区
            $data = $d->field('url')
              ->bind(['u' => [$u, \PDO::PARAM_STR]])
              ->whereOr([
                'id'     =>  $id,
                'surl'   =>  ':u'
                ])
              ->where('black < 1')
              ->find() or exit($this->error('Error!'.$u,'index/index/index'));
折腾了很久,只有这一段代码是最接近我想要的,但仅仅是接近而已,无法满足要求。SELECT `url` FROM `ex_url` WHERE  `id` = 4554  OR `surl` = '_1bs' AND (  black < 1 ) LIMIT 1这是最后生成的SQL,而我想要的是:SELECT `url` FROM `ex_url` WHERE (`id` = 4554  OR `surl` = '_1bs') AND (  black < 1 ) LIMIT 1就是加个括号而已,百度搜到了TP3使用组合查询_logic,_complex可能能符合要求,但是项目使用TP5开发的。

直接使用字符串也可以,但是担心防注入之类的问题,TP5有一个混合查询,在where中使用function还行也行,但是有个更重要的问题就是变量问题,担心效率问题所以可行性也不高,所以想问问各位大神TP有没有解决办法呢?
最佳答案
评论( 相关
后面还有条评论,点击查看>>