2016-04-16 14 views
-2
<?php class DB{ 

public static $conn; 

public function __construct(){ 
    try { 
     $this->conn = new \PDO('mysql:host=' . Route::get('mysql/host') . '; dbname='. Route::get('mysql/db'), Route::get('mysql/username'), Route::get('mysql/password')); 
     $this->conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 
     return $this->conn; 

    } catch (PDOException $e) { 
     die('Sorry cannot connect!'); 
    } 
} 

public function __destruct(){ 
    $this->conn->close(); 
    unset($this->conn); 
} 

public static function db_query($query, $bindings){ 
    $stmt = $this->conn->prepare($query); 
    $stmt->execute($bindings); 
    $res = $stmt->fetchAll(); 
    return $res ? $res : false; 
} 

}

?> 問題は、私は上記のようなエラーを回避するために別の関数への接続を渡すことができる方法です。助けてください?

答えて

0

静的機能で$thisを使用することはできません。これは、PHP manualからの引用です。

疑似変数$ thisは、メソッドがオブジェクトコンテキスト内から呼び出されたときに使用できます。 $ thisは呼び出し元オブジェクトへの参照です(通常、メソッドが属するオブジェクトですが、メソッドがセカンダリオブジェクトのコンテキストから静的に呼び出された場合は別のオブジェクトも可能です)。

あなたは非静的にdb_query()を変更し、代わりにDB::db_query()

+0

おかげで、アンドリューの$db->db_query()のようにそれを呼び出すことができます!今はうまくいっています。 :) –

関連する問題