我目前正在Zend 1.x中准备一个查询。 select查询是在您期望的类中形成的:
我按如下方式设置查询:
// prepare query
$this->getDbTable()->select()
->setIntegrityCheck(false)
->from(array('mdt' => 'meta_data_type'))
->where('id = :id')
->bind(
array(
':id' => $id
)
);
// report SQL for debugging
echo $this->getDbTable()->select()->__toString();
正如您所看到的,这不是最困难的查询。但是:返回的SQL如下:
SELECT `meta_data_type`.* FROM `meta_data_type`
任何人都可以告诉我如何调试这个问题吗?这对我来说似乎是正确的。 我试图在线跟踪这些例子,但是考虑到我们的系统方法(坐在Mapper模式中,其中包括非标准表格命名),这不是太多帮助。
仅供参考:它返回的实际数据与您对“完整数据集”的“获取行”操作的期望值相匹配,如下所示:第一行格式正确。它不受where子句的约束(正如你所期望的那样,它会从SQL中丢失!)。
仅供参考2:绑定/哪里不是问题。如果我把整个结局改为:
->where('id = 2');
它仍未在条款中显示。
答案 0 :(得分:2)
您的查询看起来没问题,虽然这不是我以前用于ZF1的语法。但是,通过第二次呼叫$this->getDbTable()->select()
,您将输出一个没有任何参数的新查询。
最简单的修复方法是将其分配给变量:
// prepare query
$select = $this->getDbTable()->select()
->setIntegrityCheck(false)
->from(array('mdt' => 'meta_data_type'))
->where('id = :id')
->bind(
array(
':id' => $id
)
);
// report SQL for debugging
echo $select;