You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP-7.1 MySQLi扩展统计MySQL中相同值的记录数

没问题,这事儿用PHP 7.1的MySQLi扩展轻松就能搞定,我给你两种常用的实现方式,都是精准针对你的需求——只统计num字段值为9837的记录总数,完全不用返回ID:

方法一:MySQLi 面向对象写法

这种写法更符合现代PHP的面向对象风格,代码结构清晰:

<?php
// 数据库连接信息,替换成你自己的配置
$host = 'localhost';
$dbname = '你的数据库名';
$username = '你的用户名';
$password = '你的密码';

// 创建数据库连接
$conn = new mysqli($host, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 准备查询语句,用COUNT(*)统计效率最高,无需返回实际数据
$sql = "SELECT COUNT(*) AS total FROM records WHERE num = ?";
$stmt = $conn->prepare($sql);

// 绑定参数(这里num是整数类型,所以用'i'标识)
$targetNum = 9837;
$stmt->bind_param("i", $targetNum);

// 执行查询
$stmt->execute();

// 获取结果并提取总数
$result = $stmt->get_result();
$row = $result->fetch_assoc();
echo $row['total']; // 这里会输出你期望的3

// 关闭资源,避免内存泄漏
$stmt->close();
$conn->close();
?>
方法二:MySQLi 过程式写法

如果你更习惯过程式的代码风格,也可以用这种写法:

<?php
// 数据库连接信息
$host = 'localhost';
$dbname = '你的数据库名';
$username = '你的用户名';
$password = '你的密码';

// 创建连接
$conn = mysqli_connect($host, $username, $password, $dbname);

// 检查连接状态
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}

// 准备查询语句
$sql = "SELECT COUNT(*) AS total FROM records WHERE num = ?";
$stmt = mysqli_prepare($conn, $sql);

// 绑定参数
$targetNum = 9837;
mysqli_stmt_bind_param($stmt, "i", $targetNum);

// 执行查询
mysqli_stmt_execute($stmt);

// 绑定结果变量并提取总数
mysqli_stmt_bind_result($stmt, $total);
mysqli_stmt_fetch($stmt);
echo $total; // 输出统计结果3

// 关闭资源
mysqli_stmt_close($stmt);
mysqli_close($conn);
?>

几个关键细节提醒:

  • 优先用COUNT(*)而非COUNT(id),前者在MySQL中执行效率更高,因为不需要额外检查字段是否为NULL
  • 全程用预处理语句(prepare+bind_param),哪怕这次是固定值,也能规避SQL注入风险,养成良好的编码习惯
  • 记得把代码里的数据库连接信息替换成你自己的实际配置

内容的提问来源于stack exchange,提问作者user8667024

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:51:56