2016-04-24 84 views
-2

我正在研究一個簡單的Content Management系統,並在定製一些代碼後跟隨教程,我試圖找到我做錯了什麼,但找不到問題。致命錯誤:調用第15行上class-db.php中的null成員函數query()

反正這裏是我的SQL連接的代碼。在$result = $mysqli->query($query);

<?php 
    if (!class_exists('DB')){ 
     class DB{ 
      public function __construct(){ 
       $mysqli = new mysqli('localhost', 'root', '', 'mdatabase'); 

       if ($mysqli->connect_errno) { 
        printf('Connection Failed %s/n',$mysqli->connect_error); 
        exit(); 
       } 
       $propertyc->connection = $mysqli; 
      } 

      public function insert($query){ 
       $result = $mysqli->query($query); 

       return $result; 
      } 

      public function select(){ 


      } 
     } 
    } 

    $db = new DB; 
?> 

Warning: Creating default object from empty value in C:\wamp\www\phptesting\includes\class-db.php on line 11

Notice: Undefined variable: mysqli in C:\wamp\www\phptesting\includes\class-db.php on line 15

Fatal error: Call to a member function query() on null in C:\wamp\www\phptesting\includes\class-db.php on line 15

回答

1

你$ mysqli的變量是不是你的類的成員發生了致命錯誤,所以它是你的數據庫的範圍::插入()函數內部空。試試這個:

<?php 
    if (!class_exists('DB')){ 
     class DB{ 
      public function __construct(){ 
       $this->mysqli = new mysqli('localhost', 'root', '', 'mdatabase'); 

       if ($this->mysqli->connect_errno) { 
        printf('Connection Failed %s/n',$this->mysqli->connect_error); 
        exit(); 
       } 
       $propertyc->connection = $this->mysqli; 
      } 

      public function insert($query){ 
       $result = $this->mysqli->query($query); 

       return $result; 
      } 

      public function select(){ 


      } 

      protected $mysqli; 
     } 
    } 

    $db = new DB; 
?> 

此外,您的$ propertyc變量將在那裏爲空,所以$ propertyc-> connection不指向任何東西。

+0

謝謝,它工作。我完全刪除了$ propertyc->連接。我意識到那裏沒用。 – Albert

相關問題