【发布时间】:2014-08-31 20:07:18
【问题描述】:
所以我正在设置一个类,允许我使用简单的函数查询其中的数据库,但是每当我尝试使用数据库时都会出现以下错误:
Using $this when not in object context
我的代码:
class Test {
// Database variables
private $DB, $DBconnectString = '';
// Construct method (works perfectly)
function __construct(){
try {
$this->DB = new PDO($this->DBconnectString, static::DATABASE_USERNAME, static::DATABASE_PASSWORD);
$this->DB -> exec("SET CHARACTER SET utf8");
$this->DB -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOexception $error) {
error_log($error);
die('Could not connect to the database');
}
}
// I get an error whenever I try to query from the database.
public static function test() {
$query = $this->DB->prepare('SELECT * FROM `testable`');
$query -> execute($data);
}
}
// I call this function like this:
$Test= new Test();
$Test->test();
【问题讨论】:
-
你是怎么调用函数的?
-
@hjpotter92 $Test= new Test(); $Test->test();
-
@hjpotter92 如果您不将它们定义为私有或受保护,它们会自动公开。
-
@Paradoxis 当你
var_dump($this->DB);时你会得到什么? -
@CharlotteDunois 我得到了完全相同的错误