【发布时间】:2016-09-08 05:24:49
【问题描述】:
问候好人,
我最近遇到了一些 OOP 问题。首先,我希望从头开始创建 CRUD Db 类。这是一个代码:
class Database{
public static $link;
public $message;
public function __construct () {
try {
self::$link = mysqli_connect(HOST, USER, PASS, DB);
if (!self::$link) {
echo self::$link->error;
}
} catch (Exception $e) {
die(" Failed connecting to DB") ;
}
}
public static function query($SQL){
return self::$link->query($SQL);
}
public static function select($table, array $columns){
$columns=implode(",",$columns);
$result=self::query("SELECT $columns FROM $table");
return self::$link->fetch($result);
}
}
所以问题是这样的:
如果我这样调用我的静态选择函数:
Database::select('users', array('username'=>'user'));
它返回:致命错误:在..中的非对象上调用成员函数 query()
如果我像这样调试连接:var_dump(Database::$link) 它返回 NULL
但如果我放置“$db = new Database();”在那条线之上,它有效吗?
谁能告诉我我做错了什么?
谢谢!
【问题讨论】:
-
我没有注意到:(HOST, USER, PASS, DB) 是从另一个文件中包含的常量。