如何在mysqli中存储COUNT(*)结果变量

时间:2018-04-08 19:40:56

标签: php mysql mysqli

我试图将COUNT(*)的结果存储在变量中,稍后将其用于if语句。这是我目前的代码:

$query = mysqli_query($mysqli, "SELECT COUNT(*) FROM appointment WHERE date = '$date_convert' and appointment_time = '$appointment_time'");

if ($query >= '1') {
    echo "Dont Continue";
}
else{
    echo "Continue";
}

2 个答案:

答案 0 :(得分:1)

mysqli_query()会返回mysqli_result个对象。您需要先获取行,然后才能比较列值。要从结果中获取一行,请在其上调用->fetch_assoc();。 (Docs

您的代码应如下所示:

// Execute the query
$query = mysqli_query($mysqli, "SELECT COUNT(*) as `count` FROM appointment WHERE date = '$date_convert' and appointment_time = '$appointment_time'");

// Since there will always be exactly 1 row, fetch it.
$row = $result->fetch_assoc();

if ($row['count'] >= 1) {
    echo "Dont Continue";
}
else {
    echo "Continue";
}

此外,我为您的count()列添加了一个名称,这样即使计数的默认列名发生更改,也可以访问该列。然后我更改了比较,以便比较两个整数(不涉及转换)。

答案 1 :(得分:-1)

如果您使用mysqli_query方法,我建议使用mysqli_num_rows()。您不必使用count(*)。这也允许您使用其他mysqli函数来访问该WHERE语句的结果!没有必要将结果限制为全*搜索的计数。

我还建议选择一列SELECT。我个人选择主键/ id列,如果我想要计数,但很少有时间我在进行SELECT查询以找出一个计数...如果有的话,我选择的数据结果我想立即使用,并仅使用计数来决定我是否应该使用它。

另外,我强烈建议准备好的陈述...... 这是一个很好的工具,如果您有兴趣,可以帮助教他们...... http://wbr.bz/QueryPro/

    $query = mysqli_query($mysqli, "SELECT * FROM appointment WHERE date = '$date_convert' and appointment_time = '$appointment_time'");

    $numResults = mysqli_num_rows($query); # of results from query