php - 如何从 PHP 查询返回 COUNT(*) 个结果

标签 php mysql

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/

相关文章:

php - 如何自定义选择的数组顺序

php - mysql 查询是否无法正常工作

mysql - 将数据库导入mysql导致表中出现0行

php - 检索上个月的所有行(Laravel + Eloquent)

php - 我从/var/run/php-fpm/丢失了我的 php-fpm.sock 文件

php - 动态 Eloquent 查询注入(inject)在 Laravel 中不起作用

Mysql高级查询

mysql - X 与 Y 无关(Sequelize/ExpressJS)

php - 删除多级菜单中的子项

php - htaccess 重定向隐藏 php 扩展或传递参数