public function votesThisMonth()
{
$this->query = $this->pdo->prepare
("
SELECT
COUNT(*) AS num_votes
FROM
votes
WHERE
YEAR(year) = YEAR(CURRENT_DATE)
AND MONTH(month) = MONTH(CURRENT_DATE)
");
$result = $this->query->execute();
return $result['num_votes'];
}
我想返回 2013 年第 5 个月的所有行。 但是当我有 10 多行具有相同数据时它返回“1”?
我做错了什么?
这些是位于我的数据库中的行:
id ip year month
1 127.0.0.1 2013 5
2 127.0.0.1 2013 5
3 127.0.0.1 2013 5
4 127.0.0.1 2013 5
5 127.0.0.1 2013 5
6 127.0.0.1 2013 5
7 127.0.0.1 2013 5
8 127.0.0.1 2013 5
9 127.0.0.1 2013 5
10 127.0.0.1 2013 5
11 127.0.0.1 2013 5
12 127.0.0.1 2013 5
13 127.0.0.1 2013 5
14 127.0.0.1 2013 5
15 127.0.0.1 2013 5
编辑了我的方法,请查看:
public function votesThisMonth()
{
$this->query = $this->pdo->prepare
("
SELECT
*
FROM
votes
WHERE
YEAR(year) = YEAR(CURRENT_DATE)
AND MONTH(month) = MONTH(CURRENT_DATE)
");
$this->query->execute();
return $this->query->rowCount();
}
这会返回“0”,为什么?
最佳答案
查询应该是
SELECT * FROM votes
WHERE `year` = YEAR(CURRENT_DATE)
AND `month` = MONTH(CURRENT_DATE)
关于php - 如何从 PHP 查询返回 COUNT(*) 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16531355/