可能重复:
参考 - 这个错误在 PHP 中意味着什么?
我有两节课:
- 数据库类
- Libtables 类
在数据库类中,我为整个脚本创建了一个使用 mysqli 的对象。当我尝试从 .php 文件中的数据库类调用函数时,它可以工作。
简化的数据库类:
class Database {
protected static $_instance;
protected $_mysqli;
protected $_query;
public function __construct($host, $username, $password, $db) {
$this->_mysqli = new mysqli($host, $username, $password, $db)
or die("There was a problem connecting to the database");
}
public function close() {
$this->_mysqli->close();
}
public function query($q) {
return $this->_mysqli->query($q);
}
}
但是,当我尝试从 Libtables 类中的数据库类调用函数时,它失败了,并且我收到一个名为的错误:“调用非对象上的成员函数 query()”
简化的 Libtables 类:
class Libtables {
function getCol($table) {
$q = "SELECT * from " . $table . ";";
$res = $db->query($q);
return $res;
}
}
我以这种方式创建了一个数据库类对象:
$db = new Database(DB_HOST, DB_USER, DB_PASS, DB_NAME);
global $db;