MySQL的行数总是返回false

时间:2013-06-24 20:35:54

标签: php mysql mysql-num-rows

我知道这里已多次询问过,我已经尝试了所有可用的解决方案。不管我的查询是否返回数据,我的查询可能存在一些内在不正确的问题:为什么它会返回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";
}

3 个答案:

答案 0 :(得分: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";
}

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

您正在使用

mysqli_query

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

mysqli_num_rows