教义——还是在哪里?

2022-01-16 00:00:00 php doctrine

我有以下疑问:

$query = Doctrine_Query::create()
                ->from('Member m')
                    ->where("m.type='1'")
                        ->andWhere("m.name LIKE '%$term%'")
                        ->orWhere("m.surname LIKE '%$term%'")
                        ->orWhere("m.company LIKE '%$term%'")
                        ->orderBy('id DESC');

但它并没有像我想要的那样工作——它忽略了 type 列.

But it's not working like I want — it is ignoring type column.

我需要的是结果集,其中 m.type=1 和此查询中的其他一些字段是 LIKE 'something'.

What I need is result set where m.type=1 and some of other fields in this query is LIKE 'something'.

推荐答案

$query = Doctrine_Query::create()
  ->from('Member m')
  ->where('m.type = 1 AND m.name LIKE ?', '%'.$term.'%')
  ->orWhere('m.type = 1 AND m.surname LIKE ?', '%'.$term.'%')
  ->orWhere('m.type = 1 AND m.company LIKE ?', '%'.$term.'%')
  ->orderBy('m.id DESC');

您的 OR 条件不包括第一个条件.还建议对变量使用 ? 以确保 Doctrine 对它们进行转义.

Your OR conditions didn't include the first condition. It's also recommended to use the ? for your variables to ensure Doctrine escapes them.

相关文章