我在 cakephp 中使用这种直接查询方法来获得计数(违反 MVC 的规范)。
$count = $this->History->query("SELECT count(id) AS x FROM ratings WHERE id='3' AND employee='28'");
但事实证明,我需要使用$count[0][0]['x']
来获取价值。
为什么它不可用$count['x']
?
在您的情况下,它将以一般方式返回它:0 = 遍历所有模型,再次返回 0,因为您没有特定的模型名称)。你的结果将永远在$count[0][0]['fieldname']
那时。如果可能,强烈建议始终使用包装器方法。
您为什么不使用文档中的 cakephp 数据库包装方法?
$count = $this->History->find('count', array('conditions'=>array('id'=>3, 'employee'=>28));
?
这将导致预期的输出x
很简单,因为函数
$this->History->query(....);
不返回一维数组。我会建议你创建一个helper function
,它提取一维数组并返回它。
function single_query($query) {
$result = $this->History->query($query);
return $result[0][0];
}
然后使用它
$count = $this->single_query("SELECT count(id) AS x FROM ratings WHERE id='3' AND employee='28'");