0

我在 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']

4

2 回答 2

1

在您的情况下,它将以一般方式返回它:0 = 遍历所有模型,再次返回 0,因为您没有特定的模型名称)。你的结果将永远在$count[0][0]['fieldname']那时。如果可能,强烈建议始终使用包装器方法。

您为什么不使用文档中的 cakephp 数据库包装方法?

$count = $this->History->find('count', array('conditions'=>array('id'=>3, 'employee'=>28));

?

这将导致预期的输出x

于 2012-08-19T10:43:02.880 回答
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'");
于 2012-08-19T10:51:07.227 回答