警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,给定对象
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, object given
我使用 (MySQLi Procedural) 将我的 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);
我使用 (MySQLi Procedural) 将我的 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);