2016-04-24 4 views
-2

私は単純なコンテンツ管理システムで作業しており、コードの一部をカスタマイズしながらチュートリアルを進めています。私は間違っていたが問題を見つけることができなかったことを見つける。致命的なエラー: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の変数は、クラスのメンバーではないので、それはあなたのDBの範囲内でnullである::()関数を挿入します。これを試してみてください:

<?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変数がnullであることを行っているので、$ propertyc->接続が何にも言及されていません。

+0

ありがとうございました。私は$ propertyc->接続を完全に削除しました。私はそれが役に立たないことに気づいた。 – Albert

関連する問題