警告:mysqli_num_rows()要求参数1为给定对象的mysqli_result


Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, object given

我已经使用(MySQLi Procedureal)将我的php拆分为2/3部分:第一个专用于数据库(打开、执行、总行、受影响行、关闭..)第二个专用于其他功能。这里有一个例子:

db.php(第一个)

<?php
class DB {
var $DBUser = 'myuser';
var $DBPass = 'mypassword';
var $DBServer = 'localhost';
var $DBName = 'myDB';
var $con;
function __construct() {
    $testcon = mysqli_connect($this->DBServer, $this->DBUser, $this->DBPass,$this->DBName);                               
    if (!$testcon) {
      die('Database connection failed: '  . mysqli_connect_error());
    } else {
        $this->con = $testcon;
    }
}
function Qry($sql) {
    if($result = mysqli_query($this->con,$sql) ) {
        return $result;
    }
    else 
    {
        $err = "Error: ".$sql. " :: ". mysqli_error;
        die("$err");
    }
}
function TotRows($result) {
    if($result === false) 
    { 
        die("Error ".mysqli_error); 
    }
    else    return mysqli_num_rows($result);
}
function AffRows($result) {
    return mysqli_affected_rows($result);
}
function LastRow($tblName) {
    return mysqli_insert_id($this->con);
}

function close() {
    mysqli_close($this->con);
}
}
?>

以及functions.php(第二个)

public function GetBoolResult($db,$sql) {
        $result=$db->Qry($sql);
        $no_of_rows =  $db->TotRows($db->con);
        if ($no_of_rows > 0) {
            // user exist
            return true;
        } else {
            // user does not exist
           return false;
        }
 }

当我尝试执行脚本时,我得到了以下警告错误:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, object given in db.php

如果您查看此函数以获取行数,则会在函数内部测试参数,sql语句已在mysql服务器中直接测试,没有任何错误。

知道问题出在哪里吗?

难道你不想传递结果,而不是连接吗

$result = $db->Qry($sql);
$no_of_rows =  $db->TotRows($result);