为什么我收到消息Fatal error: Call to undefined method database::query()
当我将相同的代码传递给一个类?
在这里我的代码:
class database{
protected $databaseLink = null;
function __construct($dbInfo){
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$this->database = $dbInfo['host'];
$this->mysql_user = $dbInfo['user'];
$this->mysql_pass = $dbInfo['pass'];
$this->mysql_db = $dbInfo['dbname'];
$this->openConnection();
return $this->get_link();
}
function openConnection(){
try {
$this->databaseLink = new mysqli($this->database , $this->mysql_user, $this->mysql_pass, $this->mysql_db);
$status = $this->databaseLink->set_charset("utf8");
if ($status === false) {
//throw new \Database_Exception(self::$dbInstance->error, self::$dbInstance->errno);
}
} catch (mysqli_sql_exception $e) {
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
//echo $e->__toString();
}
}
function get_link(){
return $this->databaseLink;
}
}
$db = new database($dbInfo);
$query = "SELECT prod_id as id, diction, name as display_name FROM htbl_products ORDER by id LIMIT 10";
$result = $db->query($query); //Fatal error: Call to undefined method database::query()
如果我在没有类包装器的情况下尝试这样的代码:
try {
$db = new mysqli($dbInfo['host'], $dbInfo['user'], $dbInfo['pass'], $dbInfo['dbname']);
$db->set_charset("utf8");
} catch (mysqli_sql_exception $e) {
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
//echo $e->__toString();
}
它有效。