$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有没有解决办法呢?
最佳答案