我在使用不同功能的方法时遇到了一些麻烦。它们都在同一个类中,但我不断收到错误“致命错误:在第42行/ / blabla.php中的非对象上调用成员函数prepare()”
我写的代码现在看起来像这样:
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();
}
答案 0 :(得分:0)
您收到此错误的原因是因为您的InsertNewForumData
方法中未定义$ DBC。您可以通过执行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();
}