mysql中的count(*)

当时我正在写一个PHP脚本来统计论坛用户表。
我使用 SQL 语句 SELECT COUNT() FROM forum_user 来查看有多少用户。
使用 mysql_query() 检索结果集。
然后我就很困惑了。
如何提取记录条数? 后来我意识到,要使用mysql_result(),首先要从结果集中获取资源,然后指定行数和列名,比如这样:mysql_result($result, 0, "c")。
当时我很高兴,因为我可以计算出用户总数。
不过,现在想来,我可能过于偏颇了,因为mysql_函数集已经被废弃了,不得不使用mysqli_或者PDO。
因此,如果我再使用原来的方法,代码就不够安全了。
2 02 2 年,我必须更新代码并使用mysqli_query()和mysqli_result(),所以这是正确的。

PHP查询语句,如何返回总记录数??

嘿,你提到的两个 PHP 方法在查询中包含记录数......我需要和你谈谈。

谈论第一个 mysql_num_ 行。
下面的方法是先执行select找出表中的所有数据,然后统计输出集中有多少行。
我以前在写一个基于2 02 2 年的简单消息时使用过它,代码是按当时的情况编写的。
但是想一想,如果表中有很多数据,比如一百万行,并且您使用 SELECT 查找所有数据并计算行数,那么计算器需要做多少工作?它非常慢。
另外,我检查了所有列,但有时我只需要统计,根本不需要表中的其他数据,这是信息的浪费。
现在我觉得,这个理由有点low。

让我们看看使用 COUNT() 的第二种方法。
这个方法就聪明多了。
它直接告诉数据库:“嘿,看看table1 中有多少行数据,别给我别的东西。
”收到指令后,我会在内部优化数据库,直接给你号码。
2 02 3 年我在帮忙改旧计划的代码时,发现之前有人用过mysql_num_rows,我立马改成了NUMBER()。
结果,查询的速度明显加快,尤其是当表有数万条数据时。
另外,NUMBER仅指非常有效的数字,符号比较明确,意图明确。

但是这里必须注意一下。
当您使用 NUMBER() 时,如果表中没有列,NUMBER() 将忽略它。
但如果你想知道有多少行数据具有某个非 NULL 列值,则应该使用 COUNT(column_name),例如 COUNT(email)。
上次调试用户注册变更功能的时候,我就钻进了这个坑,差点就犯了错误,因为我显然没有区分。

最后说实话,现在大家都用mysqli或者PDO,mysql_函数早就被废弃了。
如果您仍在用 PHP 编写新代码,我强烈建议您直接使用 mysqli 或 PDO。
准备好的决定会有所帮助,更安全,并且会产生更好的结果。
而使用mysqli,获取记录数最简单的方法就是使用count,然后直接从事件集中获取第一个值。
您不再需要使用 mysql_num_rows 方法。

有适合你的东西。
如果你想使用旧技术或者环境限制只能使用mysql_,那么COUNT()显然是更好的选择。
如果可能,请快速升级到新的数据库连接方法。