使用另一个函数的方法创建一个唯一的dbQuery来执行一个prepare语句

时间:2011-08-27 08:51:49

标签: php oop pdo

我在使用不同功能的方法时遇到了一些麻烦。它们都在同一个类中,但我不断收到错误“致命错误:在第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();
    }

1 个答案:

答案 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();
    }