PHP PDO查询用户总数无输出问题求助(禁用MySQL专属方法)
解决PDO统计用户数量无输出的问题
嘿,我来帮你排查下这个问题~你的代码逻辑其实没问题,但在结果获取的地方踩了个小坑:
问题根源
你用了fetchAll(PDO::FETCH_ASSOC)方法,它会返回一个二维数组——哪怕查询结果只有一行,它也会把这行数据放到一个数组里返回。所以你直接调用$result['total']是找不到对应值的,因为$result本身是一个包含单个元素的数组,真正的total字段在$result[0]里面。
两种解决办法
方法一:改用fetch()(更推荐)
既然我们只需要一行统计结果,用fetch()就足够了,它会直接返回一维关联数组:
include ("databaseconnectie.php"); $query = $db->prepare("SELECT COUNT(id) as total FROM users"); $query->execute(); $result = $query->fetch(PDO::FETCH_ASSOC); echo $result['total'];
方法二:如果坚持用fetchAll()
那就需要访问数组的第一个元素来获取统计值:
include ("databaseconnectie.php"); $query = $db->prepare("SELECT COUNT(id) as total FROM users"); $query->execute(); $result = $query->fetchAll(PDO::FETCH_ASSOC); echo $result[0]['total'];
额外小提示
你的SQL语句COUNT(id)是标准SQL语法,完全符合你“不使用MySQL专属方法”的要求。另外也可以换成COUNT(*),这也是标准SQL,用来统计所有行数,当id字段不为空时,效果和COUNT(id)一致,你可以根据习惯选择。
内容的提问来源于stack exchange,提问作者Rowan Richie
相关产品推荐
相关产品推荐

