$ this不在数据库连接基类的对象上下文中

时间:2012-09-16 18:48:11

标签: php mysql oop 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() ;

谢谢,我知道我错过了一些明显的东西!

1 个答案:

答案 0 :(得分:1)

如果您没有创建CoreModel类的实例,则没有$this。您无法静态调用此函数。

使用new运算符创建实例:

$db = new CoreModel();
$db->test();