我有一个带有条件的数组,我已经准备好将它传递给查询:
大批:
('u.registered = 1','u.active = 0', 'u.gender = M')
当我传递给查询时,它适用于数字比较,但不适用于 M 的 varchar。错误出现在“性别”中,它表示这是一个语义错误。我假设是因为我没有使用 expr()->literal('M'),但我不能这样做,因为查询“已经构建”..
有没有另一种方法,所以我不必重新编码?
这是代码:
public function customR($data){
// var_dump($data);die();
$this->qb = $this->em->createQueryBuilder();
$andX = $this->qb->expr()->andX();
$this->qb->select('u')
->from('models\User','u');
foreach ($data as $value){
$andX->add($value);
}
$this->qb->add('where', $andX);
$query = $this->qb->getQuery();
// var_dump($query);die();
$obj = $query->getResult();
var_dump($obj);die();
if (!empty($obj)){
return $obj;
return false;
}
}