0

これを機能させようとしていますが、$ thisが行のオブジェクトコンテキストにないというエラーが表示され続けます:

echo $this->db->query("SELECT * FROM enquiries") ;

どこが間違っているのですか?:(

class CoreModel {
protected $db ;

function __construct()
{
    try{
        $this->db = new PDO("mysql:host=localhost;dbname=database", "user", "pass") ;
        $this->db->exec('set names utf8') ;
        $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        $this->db->setAttribute(PDO::ATTR_PERSISTENT, TRUE) ;
    }
    catch(PDOEXCEPTION $e)
    {
        echo $db->errorCode ;
        die() ;
    }
}

function test()
{
    echo $this->db->query("SELECT * FROM enquiries") ;
}

function __destruct()
{
    $this->db = NULL ;
}
}

echo CoreModel::test() ;

おかげで、私は私が明白な何かを逃していることを知っていました!

4

1 に答える 1

1

CoreModelクラスのインスタンスを作成しない$this場合はありません。この関数を静的に呼び出すことはできません。

new演算子を使用してインスタンスを作成します:

$db = new CoreModel();
$db->test();
于 2012-09-16T18:50:26.527 に答える