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

如何在mysqli中将COUNT(*)的查询结果存储到变量中

嘿,我看到你在尝试把COUNT(*)的查询结果存到变量里用来做判断,你的代码现在有个关键问题:mysqli_query()执行后返回的是MySQL结果集对象,不是直接的计数数值,所以直接拿$query >= '1'做判断是完全不生效的——你这是在把对象和字符串做比较,这个条件永远不会成立。

正确的实现方式

你需要先从结果集里提取出COUNT(*)的具体数值,再进行判断:

// 执行查询(先提醒下:直接把变量拼进SQL有注入风险,后面会说更安全的写法)
$query = mysqli_query($mysqli, "SELECT COUNT(*) FROM appointment WHERE date = '$date_convert' and appointment_time = '$appointment_time'");

// 从结果集中取出计数结果——mysqli_fetch_row会返回一行数据的数组,取第一个元素就是COUNT的值
$count = mysqli_fetch_row($query)[0];

// 现在可以正常判断了
if ($count >= 1) {
    echo "Don't Continue";
} else {
    echo "Continue";
}

更安全的写法(强烈推荐)

如果$date_convert和$appointment_time是来自用户输入的内容,直接拼进SQL语句会有SQL注入的风险,所以一定要用预处理语句:

// 准备预处理语句,用?作为占位符
$stmt = mysqli_prepare($mysqli, "SELECT COUNT(*) FROM appointment WHERE date = ? AND appointment_time = ?");

// 绑定参数:"ss"表示两个参数都是字符串类型,如果你的字段是日期类型也可以用s,根据实际情况调整
mysqli_stmt_bind_param($stmt, "ss", $date_convert, $appointment_time);

// 执行语句
mysqli_stmt_execute($stmt);

// 把查询结果绑定到$count变量上
mysqli_stmt_bind_result($stmt, $count);

// 获取结果
mysqli_stmt_fetch($stmt);

// 进行判断逻辑
if ($count >= 1) {
    echo "Don't Continue";
} else {
    echo "Continue";
}

// 记得关闭预处理语句
mysqli_stmt_close($stmt);

这样既解决了你的判断问题,又保证了代码的安全性~

内容的提问来源于stack exchange,提问作者Adrian Paul Pascua

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:00:03