0

我认识到这已被多次询问,并且我已经尝试了所有可能的解决方案。无论我的查询是否返回数据,我的查询是否可能存在固有的错误,为什么它会返回 false?

$q_log_dates = "SELECT * FROM log_dates WHERE week_date ='" . $currentWeek . "'";
$q_log_dates_result = mysqli_query($connection, $q_log_dates);
$numResults = mysqli_num_rows($q_log_dates_result);

if ($numResults > 0) {
    echo "data";
} else {
    echo "no data";
}
4

3 回答 3

3

只需使用面向对象的 MySQLi 函数。在您的情况下$q_log_dates_result是一个对象,您可以使用它的属性。

$q_log_dates_result = mysqli_query($connection, $q_log_dates); //-Procedural
//OR $q_log_dates_result = $connection->query($q_log_dates);   //Object oriented
if ($q_log_dates_result->num_rows > 0) {
    echo "data";
} else {
    echo "no data";
}
于 2013-06-24T20:37:36.493 回答
1

mysqli_query 返回对象的类型,其中 mysql_num_rows 期望参数 1 是资源。您不能将 mysqli_* 函数与 mysql_* 函数混合使用,它们不可互换。

我强烈建议放弃使用 mysql_* 并坚持使用其他库,例如已经提到的 MySQLi

于 2013-06-24T20:37:43.470 回答
1

您正在使用

mysqli_query

,所以对于 $numResults ,你应该使用

mysqli_num_rows
于 2013-06-24T20:39:33.630 回答