mysqli_num_rows来自类函数错误

时间:2014-01-28 15:40:20

标签: php class mysqli

这是我第一次用PHP学习课程,我试图在数据库中进行简单的搜索 这是我班上的一些剧本:

class DB {
...
function list_query($query) {
    $ns = array();
    $q = mysqli_query($this->con_(), $query);
    while($n = mysqli_fetch_assoc($q)) {
        $ns[] = $n;
    }
    return $ns;
}
...
function num_query($q) {
    $num = mysqli_num_rows($q);
    return $num;
}
...
}

搜索脚本:

$key = "foo";
$qsearch = $db->list_query("SELECT * FROM posts WHERE content LIKE '%".$db->escape_query($key)."%'");

$num = $db->num_query($qsearch);
    if ($num == 0) {
        echo "<h2>not found</h2>";
    } else {
        echo "<h2>result for : ".$key."</h2>";

        foreach($qsearch as $val) {
            echo "<h4>".$val['title']."</h2>";
            echo strip_tags($val['content']);
        }
    }

但是num_query()函数有错误 警告:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, array given in class/db.php on line 30.

我用手动mysqli_query()检查了它,然后使用num_query()函数,它运行良好。

抱歉我的英文

1 个答案:

答案 0 :(得分:0)

您的list_query()返回数组。并且您的num_query期望mysqli_result作为参数。

所以,当你写$qsearch = $db->list_query()时,你得到一个数组;然后将该数组传递给num_query

也许,您的num_query应该是:

function num_query($result) {
     return count($result);
}