Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用另一个函数中的方法创建唯一的dbQuery以执行prepare语句_Php_Oop_Pdo - Fatal编程技术网

Php 使用另一个函数中的方法创建唯一的dbQuery以执行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

我在使用不同函数的方法时遇到了一些问题。它们都在同一个类中,但我不断收到错误“致命错误:调用//blabla.php第42行的非对象上的成员函数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();
    }

出现此错误的原因是,$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哦,真不敢相信我错过了,呵呵。非常感谢,迈克。现在一切都正常了……)