php - PDO - SQL COUNT 在 PHP 函数中不起作用

标签 php mysql sql pdo

我在一个网站上工作,我希望在其中使用 SQL 查询来计算已登录用户 ID 在数据库表中显示的次数。为了实现这一点,我创建了一个包含 SQL 查询的 PHP 函数。

PHP 函数:

function count_by_user_id() {
     global $conn, $counts;
     $stmt = $conn->prepare("SELECT COUNT(`user_id`) AS `returnCount` FROM `table` WHERE `user_id` = :id;");

     $stmt->execute([
         ":id" => $_SESSION["user_id"]
     ]);

     $data = $stmt->fetch(PDO::FETCH_ASSOC);    
     $counts["returnCount"] = $data["returnCount"];
}

返回的结果应该存储在一个名为 $counts["returnCount"] 的变量中,然后显示在另一个名为 count.php 的页面上。

count.php

<div class="data"><?=htmlspecialchars($counts["returnCount"]); ?></div>

不幸的是,count.php 上没有显示任何内容,我似乎无法弄清楚原因。

所以我的问题是,如何计算 user_idtable 中出现的次数,并将结果显示在 count.php 上?

最佳答案

未测试:

据我了解manual :

PDOStatement::fetchColumn() returns a single column in the next row of a result set.

PDOStatement::fetchColumn() 返回一行(即)行的一列数据。

所以在 $data = $stmt->fetchColumn(); 之后,$data 应该已经包含了值。这意味着 $user["returnCount"] = $data; 应该可以解决问题。

也许您想将获取数据的方式更改为 PDOStatement::fetch . 那么您的代码将如下所示:

$data = $stmt->fetch(PDO::FETCH_ASSOC);  
$user["returnCount"] = $data["returnCount"];

注意:此答案指的是问题的第一个版本。

关于php - PDO - SQL COUNT 在 PHP 函数中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226913/

相关文章:

php - 选择 ID 存在于另一列 MySQL 中的项目

php - 仅当用户名与创建条目 PDO 的用户相同时才更新表中的条目

php - 如何使用正则表达式检查字符串直到找到空格?

php - Zend 和 Jquery(Ajax 发布)

php - 使用 Laravel Eloquent ORM 实现 MySQL Spatial 函数

mysql - 将 google 图表保存为 php 服务器上的图像

php - 如何在 Laravel 中的连接查询中获取计数

mysql - golang调用mysql函数

php - 从日期中提取年份并使用年份从数据库中获取数据

sql - 从 SQL Server 获取 JSON 格式的分层数据