2015-08-15 13 views
0

所以,當我運行這個它下面的輸出錯誤捕獲的致命錯誤:類如的對象無法轉換爲字符串我在做什麼錯在這個PHP PDO

spl_autoload_register(function($class) { 
    require_once '../dbfolder/'.$class.'.php'; 
}); 

$mysql = dbWrapper::getDbInstance(); 

class eg 
{ 
    private $username = 'paul'; 
    private $email = '[email protected]'; 

    public function eg_() 
    { 
     global $mysql; 

     $sql = "INSERT INTO users(username,email)VALUES(:username,:email)"; 
     $prepared = $mysql->$this->handler->prepare($sql); 

     $prepared->bindParam(':username',$this->username); 
     $prepared->bindParam(':email',$this->email); 
     $prepared->execute(); 
    } 
} 

$eg = new eg(); 
$eg->eg_(); 

請任何人都只是點出了我做錯了什麼?

+0

@AlbertoFernández對不起,我不明白你的意思,但它爲我工作正常像這樣,如果pdo工作正常。 – rapulu

+0

乾草rapulu。它的一種糟糕的形式來_eat和run_如果答案解決了你的問題,然後接受答案。它可以讓其他人知道這個問題已經得到解答,並且感謝回答者,並在他們的聲譽上提出幾點要求。 – RiggsFolly

回答

0

這條線的問題是:

$prepared = $mysql->$this->handler->prepare($sql); 

PHP認爲你想使用它的variable variable功能。它看到$mysql->$this並嘗試將$this轉換爲當前類不支持的字符串(沒有__toString()魔術方法)。我認爲這是一個錯字/複製粘貼錯誤。

爲了解決這個問題,你需要的是將其刪除(假設你的$mysql對象具有的handler屬性即是):

$prepared = $mysql->handler->prepare($sql); 
+0

非常感謝,你剛剛解決了我的問題。 – rapulu

+1

如果這解決了您的問題,請點擊答案左側的複選標記。 – Anonymous