Php 使用另一个函数中的方法创建唯一的dbQuery以执行prepare语句
我在使用不同函数的方法时遇到了一些问题。它们都在同一个类中,但我不断收到错误“致命错误:调用//blabla.php第42行的非对象上的成员函数prepare()” 我现在编写的代码如下所示:Php 使用另一个函数中的方法创建唯一的dbQuery以执行prepare语句,php,oop,pdo,Php,Oop,Pdo,我在使用不同函数的方法时遇到了一些问题。它们都在同一个类中,但我不断收到错误“致命错误:调用//blabla.php第42行的非对象上的成员函数prepare()” 我现在编写的代码如下所示: public function connectDatabase() { try { $DBC = new PDO("mysql:host=".self::dbhost.";dbname=".self::dbname."", self::dbu
public function connectDatabase()
{
try {
$DBC = new PDO("mysql:host=".self::dbhost.";dbname=".self::dbname."", self::dbuser, self::dbpass);
$DBC->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
public function InsertNewForumData( $data )
{
$new = $DBC->prepare( $data );
$new->execute();
}
出现此错误的原因是,$DBC在
InsertNewForumData
方法中未定义。您可以通过执行self::InsertNewForumData($data,$DBC)通过引用传递它
并将其添加到该方法声明的参数列表中,或者将其保存到self::DBC
中,如下所示:
public function connectDatabase()
{
try {
self::DBC = new PDO("mysql:host=".self::dbhost.";dbname=".self::dbname."", self::dbuser, self::dbpass);
self::DBC->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
public function InsertNewForumData( $data )
{
$new = self::DBC->prepare( $data );
$new->execute();
}
对不起,我不知道你用的是单人床。我更新了我的帖子,用self而不是$this哦,真不敢相信我错过了,呵呵。非常感谢,迈克。现在一切都正常了……)