主义为什么这个查询返回0行?

| 我有以下DQL查询:
$q = Doctrine_Query::create()
    ->select(\'id\')
    ->from(\'Comment\')
    ->where(\"active=\'?\' AND object_id=\'?\' AND group_name = \'?\'\"
            , array(1, 1, \'unit\'));
哪个产生sql:
SELECT c.id AS c__id, c.group_name AS c__group_name, c.name AS c__name,
       c.email AS c__email
  FROM comment c
 WHERE (c.active = \'?\' AND c.object_id = \'?\' AND c.group_name = \'?\')

bindings: 1, 1, unit
在数据库表中:
id user_id object_id group_name name  active
1   0      1         unit       test  1
当我执行de query时,它返回0行。为什么? 如果我进入
phpmyadmin
并且奔跑
SELECT * FROM comment WHERE active=1 AND object_id=1 AND group_name=\'unit\'
结果包含我要查找的记录。 在phpmyadmin中,Doctrine生成的查询将表名标识为\'c \'。这很奇怪,因为我在应用程序中使用了其他类似这种DQL查询并可以正常工作。 谢谢。     
已邀请:
删除参数占位符周围的引号:
where(\"active=? AND object_id=? AND group_name = ?\"
或使用
named parameters
where(\"active= :ative AND object_id= :object_id AND group_name = :group_name\"
      , array(\':ative\'=>1, \':objet_id\'=>1, \'group_name\'=>\'unit\')\"
    

要回复问题请先登录注册