2014-05-17 59 views
-2

我收到以下錯誤信息:Fatal error: Call to a member function prepare() on a non-object in <file location>PHP:調用一個成員函數準備()一個非對象在

代碼:

$obj = new MySQLi(); 
$mysqli = $obj->connect(); 

/* Create a prepared statement */ 
if($stmt = $mysqli -> prepare(...)) { <--- error line 
    ....more code 
} 

class MySQLi { 
    public $mysqli; 

    public function connect() { 
     $this->mysqli = new mysqli('localhost', 'root', '', 'icu'); 

     if(mysqli_connect_errno()) { 
      echo "Connection Failed: " . mysqli_connect_errno(); 
      exit(); 
     } 
     mysqli_set_charset($this->mysqli, "utf8"); 
     return $this->mysqli; 
    } 

    public function con_close(){ 
     mysqli_close($con); 
    } 
} 
+2

'$ obj-> connect'沒有一個'mysqli'對象(很可能是由於連接失敗)返回。 'var_dump($ mysqli)'會告訴你這個。 – h2ooooooo

+0

@vascowhite那些線程沒有幫助我,我環顧四周。 –

+0

@KarlMorrison做'var_dump($ mysqli)'。結果是什麼?正如h2o所說的 –

回答

1

MySQLi類沒有->connect()方法,你可能有重複的類名這是不是一個好主意來工作(這也是你得到的原因是NULL並且不能調用prepare方法)。

在庫MySQLi類,你開始在constructor連接:

$mysqli = new mysqli('localhost', 'db_user', 'db_password', 'the_database'); 
1
  1. 您需要的mysqli實例:

    $mysqli = new mysqli('localhost', 'root', '', 'icu'); 
    
  2. 您有空格這裏->

    if($stmt = $mysqli -> prepare(...)).... 
    

    將其更改爲:

    if($stmt = $mysqli->prepare(...))... 
    
+0

修正了但是不正常的錯誤: –

相關問題