我试图让这个工作,但它一直给我一个关于$这个不在该行的对象上下文中的错误:
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() ;
谢谢,我知道我错过了一些明显的东西!
答案 0 :(得分:1)
如果您没有创建CoreModel类的实例,则没有$this
。您无法静态调用此函数。
使用new
运算符创建实例:
$db = new CoreModel();
$db->test();