php - 为什么这个查询返回 0 行?

标签 php mysql zend-framework select doctrine

我有以下 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 查询时,它返回 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 = ?"

或使用命名参数:

where("active= :ative AND object_id= :object_id AND group_name = :group_name"
      , array(':ative'=>1, ':objet_id'=>1, 'group_name'=>'unit')"

关于php - 为什么这个查询返回 0 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848550/

相关文章:

php - 统计数据库中最多列出 'author'行

php - 获取帖子数据,Zend Framework

php - Zend Db Table 摘要向行添加新字段

php7 :error pid 12451 PHP Fatal error: require(): Failed opening required

PHP mysql_query - 使用所有变量更新

php - 最佳替代异常处理模型

php - 在 Ember 应用程序中连接到 MySql 数据库

mysql - 多数据库查询的ORM解决方案

php - 使用 cakePHP 填充连接表

zend-framework - zfcuser 注册后添加用户角色