PDO连接数据库时如何获取结果集的数目

时间:2022-12-11 12:37:40
查了下手册 好像没有发现PDO中类似于mysql_num_rows这样的函数用于计算返回结果集的数目
rowCount是返回SQL语句执行后影响的行数。。。

3 个解决方案

#1


再补问一个问题
登录的时候把账号密码都赋值给session了
那有会员才能访问的页面是否需要把session再入库查询账号密码是否正确吗
cookies呢

#2


Example #2 Counting rows returned by a SELECT statement
For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then perform the correct action.

大意是,你可以变通一下,在SQL语句中使用 count(*) as rowcount。然后通过PDO获取其行数

考虑到效率你可以先fetchAll(),然后直接用PHP的函数count()来计算查询结果集转换为数组后的单元数

#3


在大多数应用中(尤其是使用模板引擎时),fetchAll 方法简单且高效

#1


再补问一个问题
登录的时候把账号密码都赋值给session了
那有会员才能访问的页面是否需要把session再入库查询账号密码是否正确吗
cookies呢

#2


Example #2 Counting rows returned by a SELECT statement
For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then perform the correct action.

大意是,你可以变通一下,在SQL语句中使用 count(*) as rowcount。然后通过PDO获取其行数

考虑到效率你可以先fetchAll(),然后直接用PHP的函数count()来计算查询结果集转换为数组后的单元数

#3


在大多数应用中(尤其是使用模板引擎时),fetchAll 方法简单且高效