php - SQL 计数在 PHP 代码内部不起作用

标签 php mysql phpmyadmin

我遇到了最奇怪的问题。 COUNT() 在我的 PHP 代码中不起作用,但它在 PHPMyAdmin 数据库的 SQL 输入空间中起作用。例如,如果我使用以下查询:

SELECT COUNT(*) FROM posts WHERE category = "coding"

它将从 PHPmyadmin 部分中的 SQL 输入返回正确的结果,但是从 PHP 代码它将始终返回 1。这是我用于 PHP 的代码:

function numberofposts($category, $connection) {
    $query = "SELECT COUNT(*) FROM posts WHERE category = :category";
    $params = array(':category' => $category);
    try{
        $stmt = $connection->prepare($query);
        $result = $stmt->execute($params);
    }
    catch(PDOException $ex){
        echo ("Failed to run query: " . $ex->getMessage());
    }
    return $result;
}

echo "Number of Posts: " . numberofposts("art", $connection);

它正在做的是在顶部的第一个代码中它将返回正确的结果,但在 PHP 代码中它总是返回 1。我的 PHP 有问题吗?如果您不明白我在问什么,或者如果您想了解更多信息,请发帖。

最佳答案

您正在执行选择并执行语句,但您没有获取包含结果的行。

你可能想要这样的东西:

function numberofposts($category, $connection) {
    $query = "SELECT COUNT(*) as cnt FROM posts WHERE category = :category";
                                 ^^^ for easy access
    $params = array(':category' => $category);
    try{
        $stmt = $connection->prepare($query);
        $stmt->execute($params);
        $row = $stmt->fetch();
    }
    catch(PDOException $ex){
        echo ("Failed to run query: " . $ex->getMessage());
    }
    return $row['cnt'];
    // if you don't alias the column you can do:
    // return $row[0];
}

关于php - SQL 计数在 PHP 代码内部不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29593339/

相关文章:

javascript - 使用 PHP 创建一个新的 PHP 文件

php - 如何从 textarea POST 数据中保留标签

php - 如何将 PHP 变量数组发送到 MySQL 数据库?

javascript - 使用 Jquery Refresh 从 URL 获取变量

javascript - 如何调用 Sequelize MySQL JSON 查询?

php - CodeIgniter 不需要模板引擎

php - 插入数据库 (MySQLi) 时出现 ÆØÅ(挪威字母)问题

php - CLI php中的printf在行尾打印额外的数字

mysql - 如何在 PHPMyAdmin 中选择个人访问者的数量?

phpmyadmin - 000虚拟主机#1045-用户被拒绝访问