我在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 :(得分:1)
在你的情况下,它将以一般方式返回它:0 =遍历所有模型,并再次为0,因为你没有特定的模型名称)。您的结果将始终在$count[0][0]['fieldname']
。
强烈建议尽可能使用包装器方法。
为什么不使用文件中的cakephp数据库包装器方法?
$count = $this->History->find('count', array('conditions'=>array('id'=>3, 'employee'=>28));
它会产生预期的输出x
答案 1 :(得分:0)
简单来说,因为功能
$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'");