如何调试NotORM

时间:2016-04-20 11:47:14

标签: mysql notorm

有没有人知道调试NotORM请求的方法?

我可以通过打印NotORM对象来获取它执行的SQL查询。

示例:

$models = $this->dbh->wh_product()->select("wh_model.id, wh_model.manufacturer, wh_model.model, wh_model.details, wh_model.wh_category.category, crm_contact.ragione")->order("wh_model.wh_category.id ASC, crm_contact.ragione ASC, wh_model.model ASC");

printf($models);

这给出了:

SELECT
    wh_model.id,
    wh_model.manufacturer,
    wh_model.model,
    wh_model.details,
    wh_category.category,
    crm_contact.ragione
FROM
    wh_product
LEFT JOIN wh_model ON wh_product.wh_model_id = wh_model.id
LEFT JOIN wh_category ON wh_model.wh_category_id = wh_category.id
LEFT JOIN crm_contact ON wh_product.crm_contact_id = crm_contact.id
ORDER BY
    wh_category.id ASC,
    crm_contact.ragione ASC,
    wh_model.model ASC

我遇到了这个查询的问题,因为如果我通过phpMyAdmin手动执行此操作,我会获得90个结果,但NotORM只给我14个。

有没有办法了解NotORM会发生什么?

由于

1 个答案:

答案 0 :(得分:0)

我遇到了iterator_to_array弄乱结果集的问题。就我而言,我正在使用

查看结果集
print_r(iterator_to_array($notormresult));

并且订单被忽略了。

当我实际迭代并打印结果集时,我注意到了它:

$newresult = array();
foreach($notormresult as $r){$newresult[]=iterator_to_array($r);}
print_r($newresult);

不确定这是否是您的问题,因为您的计数不匹配。