php有问题(在非对象上调用成员函数)

php有问题(在非对象上调用成员函数),php,object,fatal-error,Php,Object,Fatal Error,我得到这个php错误,我似乎无法修复它 Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\mlrst\database.php on line 26 这是调用函数prepare的行 $this->statement->prepare($strQuery); 这是申报单 protected $statement; 有什么想法吗 编辑:这是我的全部代码(不要介意测试

我得到这个php错误,我似乎无法修复它

Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\mlrst\database.php on line 26
这是调用函数prepare的行

$this->statement->prepare($strQuery);
这是申报单

protected $statement;
有什么想法吗

编辑:这是我的全部代码(不要介意测试假人)


您分配了局部变量
$statement
。您需要使用
$this->statement
设置实例的属性

换言之,改变这一点:

$statement = $db_connect->stmt_init();
为此:

$this->statement = $db_connect->stmt_init();
$this->statement->bind_param("ss", $name, $feedback);
$query = $this->statement->execute();
这是:

$statement->bind_param("ss", $name, $feedback);
为此:

$this->statement = $db_connect->stmt_init();
$this->statement->bind_param("ss", $name, $feedback);
$query = $this->statement->execute();
…这是:

$query = $statement->execute();
为此:

$this->statement = $db_connect->stmt_init();
$this->statement->bind_param("ss", $name, $feedback);
$query = $this->statement->execute();

您分配了局部变量
$statement
。您需要使用
$this->statement
设置实例的属性

换言之,改变这一点:

$statement = $db_connect->stmt_init();
为此:

$this->statement = $db_connect->stmt_init();
$this->statement->bind_param("ss", $name, $feedback);
$query = $this->statement->execute();
这是:

$statement->bind_param("ss", $name, $feedback);
为此:

$this->statement = $db_connect->stmt_init();
$this->statement->bind_param("ss", $name, $feedback);
$query = $this->statement->execute();
…这是:

$query = $statement->execute();
为此:

$this->statement = $db_connect->stmt_init();
$this->statement->bind_param("ss", $name, $feedback);
$query = $this->statement->execute();

你需要发布更多的代码。我们看不到您在何处/是否实际创建了语句对象。不管你是否关心类中有一个名为
-statement
的成员,重要的是你在何时何地将对象分配给该成员,这取决于你没有做的错误。如果这只是一个围绕PDO或mysqli的包装类,那么很可能你应该首先分配给
->statement
。它通常是准备一个SQL查询的结果,而不是准备一些东西的句柄。我们看不到您在何处/是否实际创建了语句对象。不管你是否关心类中有一个名为
-statement
的成员,重要的是你在何时何地将对象分配给该成员,这取决于你没有做的错误。如果这只是一个围绕PDO或mysqli的包装类,那么很可能你应该首先分配给
->statement
。它通常是准备SQL查询的结果,而不是准备使用的句柄
$query=$statement->execute()
preparedQuery()函数中。
发现另一行错误
$query=$statement->execute():)也在
$statement->bind_param(“ss”,$name,$feedback)中
$query=$statement->execute()
preparedQuery()函数中。
发现另一行错误
$query=$statement->execute():)