类包装器中未定义的方法database :: query()

时间:2017-12-12 18:55:56

标签: php mysql

为什么我收到消息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();
    }

它有效。

0 个答案:

没有答案