【发布时间】:2012-10-16 14:20:09
【问题描述】:
我想从我的typo3 扩展中获取一些数据库表。 该扩展基于 extbase。
查询总是不返回任何内容,但数据存在
我试过了:
$query = $this->createQuery();
$query->statement('SELECT * FROM `my_table`
WHERE field = ? ORDER BY date DESC LIMIT 1',
array($condition));
$results = $query->execute();
还有这个:
$query = $this->createQuery();
$query->matching($query->equals('field', $condition));
$query->setOrderings(array('date' => Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING));
$query->setLimit(1);
$results = $query->execute();
两者都返回 null 作为结果。
是否可以获取类创建的sql来查看bug在哪里?
我查看了一些 extbase 持久类,但没有找到线索
编辑: 对于那些有兴趣的人..我找到了一个“解决方案”。
如果使用 statement() 方法创建查询,则可以使用此函数打印查询
echo $query->getStatement()->getStatement();
它不会替换占位符。 但是您可以使用此方法获取变量
var_dump($query->getStatement()->getBoundVariables());
这是我找到的最佳解决方案,无需编辑 extbase 扩展
【问题讨论】:
-
您也可以使用 Zend Server,它的“Z-Ray”会自动收集所有数据库查询。
-
这能回答你的问题吗? How to debug a query in extbase?