如何使用 PHP 从 MySQL 表中检索精确的行数
获取 MySQL 表中的行数是一项常见任务数据库处理。 PHP 为此提供了多种选项,特别是对于那些喜欢过程代码的人。
错误:
一个常见错误是获取单词“Array”而不是数字。当使用返回关联数组的 mysqli_fetch_assoc() 时会发生这种情况。
解决方案 1:使用数组索引
要解决此问题,请访问与列名对应的数组索引。例如:
$count = mysqli_fetch_assoc($result)['COUNT(*)'];
解决方案 2:使用列别名
或者,您可以在 SQL 查询中为 count 列指定别名:
$sql = "SELECT COUNT(*) AS cnt FROM news"; $count = mysqli_fetch_assoc($result)['cnt'];
解决方案 3:使用数值数组
另一个选项是使用 mysqli_fetch_row() 检索数值数组:
$count = mysqli_fetch_row($result)[0];
PHP 8.1 优化
如果使用PHP 8.1 或更高版本,您可以简化操作:
$count = mysqli_fetch_column($result);
避免使用 mysqli_num_rows
虽然使用 mysqli_num_rows 看起来很诱人,但此函数有很大的限制,应该避免用于计算行数。
面向对象编程方法
对于那些喜欢面向对象编程的人,相同的代码可以编写为:
$count = $con->query($sql)->fetch_row()[0];
准备语句
当使用带有变量的查询时,您应该使用准备好的语句来提高安全性和效率:
$stmt = $con->prepare("SELECT COUNT(*) FROM news WHERE category=?"); $stmt->bind_param('s', $category); $stmt->execute(); $count = $stmt->get_result()->fetch_row()[0];
以上是如何使用 PHP 准确统计 MySQL 行数?的详细内容。更多信息请关注PHP中文网其他相关文章!