Example #1
0
 /**
  * 构造函数
  * 
  * @see QP_Db_Abstract::__construct()
  */
 public function __construct($config = array(), $isDebug = false, $showError = false)
 {
     parent::__construct($config, $isDebug, $showError);
     // 检测是否安装了 MYSQLI 扩展
     if (!function_exists('mysqli_connect')) {
         throw new QP_Exception('系统错误:没有安装 MYSQLI 扩展.');
     }
     // MYSQLI 没有常连接的概念
     // 连接DB
     if ($this->_debug) {
         $beginTime = microtime(true);
         $this->_link = @mysqli_connect($this->_config['host'], $this->_config['username'], $this->_config['password'], null, $this->_config['port']);
         $endTime = microtime(true);
         // 记录调试信息
         $this->_setDebugInfo('Connect DB Server.', $endTime - $beginTime);
     } else {
         $this->_link = @mysqli_connect($this->_config['host'], $this->_config['username'], $this->_config['password'], null, $this->_config['port']);
     }
     // 是否连接成功
     if (!$this->_link) {
         $this->_DBError('数据库连接失败,请检查你的数据库配置是否正确:' . @mysqli_error());
     }
     // 打开数据库
     if (!@mysqli_select_db($this->_link, $this->_config['dbname'])) {
         $this->_DBError('打开数据库失败:' . $this->errorMsg());
     }
     // 设置字符集
     $this->_setCharset();
 }
Example #2
0
 /**
  * 构造函数
  * 
  * @see QP_Db_Abstract::__construct()
  */
 public function __construct($config = array(), $isDebug = false, $showError = false)
 {
     parent::__construct($config, $isDebug, $showError);
     // 连接数据库,根据连接选项使用不同的连接方式
     $connectFun = 'mysql_connect';
     if ($this->_config['pconnect']) {
         $connectFun = 'mysql_pconnect';
     }
     $host = $this->_config['host'] . ':' . $this->_config['port'];
     // 连接DB
     if ($this->_debug) {
         $beginTime = microtime(true);
         $this->_link = @$connectFun($host, $this->_config['username'], $this->_config['password']);
         $endTime = microtime(true);
         // 记录调试信息
         $this->_setDebugInfo('Connect DB Server.', $endTime - $beginTime);
     } else {
         $this->_link = @$connectFun($host, $this->_config['username'], $this->_config['password']);
     }
     // 是否连接成功
     if (!$this->_link) {
         $this->_DBError('数据库连接失败,请检查你的数据库配置是否正确:' . @mysql_error());
     }
     // 打开数据库
     if (!@mysql_select_db($this->_config['dbname'], $this->_link)) {
         $this->_DBError('打开数据库失败:' . @mysql_error());
     }
     // 设置字符集
     $this->_setCharset();
 }
Example #3
0
 /**
  * 构造函数
  * 
  * @see QP_Db_Abstract::__construct()
  */
 public function __construct($config = array(), $isDebug = false)
 {
     parent::__construct($config, $isDebug);
     // 检测有没有安装 PDO_MYSQl 支持
     if (!in_array('mysql', PDO::getAvailableDrivers())) {
         throw new QP_Exception('系统错误:没有安装 PDO MYSQL 支持.');
     }
     // 是否打开常连接
     $dns = 'mysql:host=' . $this->_config['host'] . ';port=' . $this->_config['port'];
     $dns .= ';dbname=' . $this->_config['dbname'] . ';charset=' . $this->_config['charset'];
     $driverOptions = array();
     if ($this->_config['pconnect']) {
         $driverOptions = array(PDO::ATTR_PERSISTENT => true);
     }
     // 连接DB
     if ($this->_debug) {
         $beginTime = microtime(true);
         $this->_link = new PDO($dns, $this->_config['username'], $this->_config['password'], $driverOptions);
         $endTime = microtime(true);
         // 记录调试信息
         $this->_setDebugInfo('Connect DB Server.', $endTime - $beginTime);
     } else {
         $this->_link = new PDO($dns, $this->_config['username'], $this->_config['password'], $driverOptions);
     }
     // 是否连接成功
     if (!$this->_link) {
         $this->_DBError('数据库连接失败,请检查你的数据库配置是否正确:' . $this->errorMsg());
     }
     // 设置字符集 注意:不知为什么 DNS 中的 charset 属性对MYSQL没有作用.
     $this->_setCharset();
     // 强制列名是小写
     $this->_link->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
     // 错误级别  PDO::ERRMODE_EXCEPTION  抛出异常
     //          PDO::ERRMODE_WARNING    显示警告错误.
     //          PDO::ERRMODE_SILENT     不显示错误信息,只显示错误码.(只有这个错处框架才好自行处理)
     $this->_link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
 }