关于mysqli对象的奇怪错误PHP和非对象错误

时间:2012-01-04 12:35:06

标签: php

当我收到此错误时: 在非对象上调用成员函数query()

现在当我走到它指定的那一行时,我看到了这个:

// Count the rows of a table
$query = $this->c->query("SELECT COUNT(*) as `rows` FROM ".$query) or die($this->c->error);
$row = $query->fetch_assoc();

$result = $row['rows'];
return $result;

经过一番尝试,我发现当我死的时候,它给了我正确的结果($ result);在返回之前,它会给出我需要的结果。

当我检查哪一行调用该函数时,我看到了:

if($this->num_rows("accounts WHERE id='".$_SESSION['user_id']."'") == 0)

我的班级我是这样构建的:

我创建了一个类Db,其中有一个函数num_rows,然后我创建了一个扩展Db类的User,在User类的构造函数中,通过执行parent :: __ construct()初始化Db类;我100%肯定该类被初始化,因为我可以做真正的转义字符串但不执行任何查询O.o任何可以帮助我的人吗?

一些额外信息:

当我打印我的连接时,它给出了这个:

mysqli Object ( [affected_rows] => 1 [client_info] => mysqlnd 5.0.8-dev - 20102224 -     $Revision: 310735 $ [client_version] => 50008 [connect_errno] => 0 [connect_error] => [errno] => 0 [error] => [field_count] => 1 [host_info] => localhost via TCP/IP [info] => [insert_id] => 0 [server_info] => 5.5.16 [server_version] => 50516 [sqlstate] => 00000 [protocol_version] => 10 [thread_id] => 715 [warning_count] => 0 ) mysqli Object ( [affected_rows] => 1 [client_info] => mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $ [client_version] => 50008 [connect_errno] => 0 [connect_error] => [errno] => 0 [error] => [field_count] => 1 [host_info] => localhost via TCP/IP [info] => [insert_id] => 0 [server_info] => 5.5.16 [server_version] => 50516 [sqlstate] => 00000 [protocol_version] => 10 [thread_id] => 715 [warning_count] => 0 )

我头脑中的问题是为什么它有2个mysqli对象?

Db class = http://pastebin.com/yvDij0kG 用户类= http://pastebin.com/ndwa2YRr

2 个答案:

答案 0 :(得分:0)

尝试

if($this->c->num_rows("accounts WHERE id='".$_SESSION['user_id']."'") == 0)

或尝试调试发生错误的“$ this”

答案 1 :(得分:0)

好的找到了我自己的bug:p是因为我重写了构造函数,因此我无法在它自己的构造函数之外启动我的对象。