为什么mysqli不起作用?

时间:2012-08-06 11:57:30

标签: php oop mysqli

class mysql{

    function __construct(){
        $this->connect();
    }

    function __destruct(){
        $mysqli = $this->connect();
        $mysqli->close();
    }

    public function connect(){

        static $mysqli;

        require_once(ROOT_PATH.'/config/db_conf.php');

        @$mysqli = new mysqli($sql_login['host'], $sql_login['user'], $sql_login['password'] , $sql_login['database'], $sql_login['port']);

        if(!$mysqli){
            throw new Exception("Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error);
        }

        return $mysqli;
    }
}

当我尝试连接到mysql时 - 一切都很好,但在它之后我收到警告:mysqli::close(): Couldn't fetch mysqli in...

1 个答案:

答案 0 :(得分:3)

直接回答这个问题:

  1. 移动“static $ mysqli;”成为类变量“var $ mysqli;”。
  2. 将连接字符串移动到构造中。 (为什么有一个只能以这种方式调用另一个函数的函数?除非你要连接第二次=不太可能,除非你搞乱了多个连接?)。
  3. 当你连接时,使用类变量(而不是静态。失去@,如hakre所说。)
  4. 当您破坏时,不要重新创建新连接,只需关闭您拥有的连接(如Yazmat所说)。
  5. 但是:你有这个课程的计划吗? mysqli本身就是一个类,可能会在这个阶段为您提供所需的一切。我首先在增强它之前首先使用基类,然后在你需要额外功能的更多想法时加强它。首先要保持简单:)