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

如果你$this不创建 CoreModel 类的实例,你就没有。您不能静态调用此函数。

使用运算符创建实例new

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