0
我有以下DQL查詢:Doctrine爲什麼這個查詢返回0行?
$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
當我執行它返回0行去查詢。爲什麼?
如果我去phpmyadmin
和我跑
SELECT * FROM comment WHERE active=1 AND object_id=1 AND group_name='unit'
結果包含我期待已久的紀錄。
在phpmyadmin中,由Doctrine生成的查詢將表名稱標識爲'c'。這很奇怪,因爲我在我的應用程序中使用了其他像這樣的DQL查詢並且工作。
謝謝。
如果我改變它,我得到一個錯誤,所以我用 '?':「SQLSTATE [HY093]:無效的參數編號:綁定變量的數量與令牌的數量不匹配 – Emanuel 2011-05-01 13:25:24
答案已更新。 – manji 2011-05-01 13:52:22