prefix = $dbconfig['dbqz'].'_'; try { $this->db = new \PDO("mysql:host={$dbconfig['host']};dbname={$dbconfig['dbname']};port={$dbconfig['port']}",$dbconfig['user'],$dbconfig['pwd']); } catch (Exception $e) { exit('链接数据库失败:' . $e->getMessage()); } $this->db->exec("set sql_mode = ''"); $this->db->exec("set names utf8"); } /** * 设置结果集方式 * * @param string $_style */ public function setFetchStyle($_style) { $this->fetchStyle = $_style; } /** * 替换数据表前缀 * @param $_sql * * @return mixed */ private function dealPrefix($_sql){ return str_replace($this->sqlPrefix,$this->prefix,$_sql); } /** * 获取PDOStatement * @param string $_sql * @param array $_array * * @return \PDOStatement */ public function query($_sql, $_array = null) { $_sql = $this->dealPrefix($_sql); if (is_array($_array)) { $stmt = $this->db->prepare($_sql); if($stmt) $stmt->execute($_array); } else { $stmt = $this->db->query($_sql); } return $stmt; } /** * 查询一条结果 * * @param string $_sql string * @param array $_array array * * @return mixed */ public function getRow($_sql, $_array = null) { $_sql = $this->dealPrefix($_sql); if (is_array($_array)) { $stmt = $this->db->prepare($_sql); if($stmt) $stmt->execute($_array); } else { $stmt = $this->db->query($_sql); } if($stmt) { return $stmt->fetch($this->fetchStyle); }else{ return false; } } /** * 获取所有结果 * * @param string $_sql * @param array $_array * * @return array */ public function getAll($_sql, $_array = null) { $_sql = $this->dealPrefix($_sql); if (is_array($_array)) { $stmt = $this->db->prepare($_sql); if($stmt) $stmt->execute($_array); } else { $stmt = $this->db->query($_sql); } if($stmt) { return $stmt->fetchAll($this->fetchStyle); }else{ return false; } } /** * 获取结果数 * @param string $_sql * @param array $_array * * @return int */ public function getCount($_sql, $_array = null) { $_sql = $this->dealPrefix($_sql); $stmt = $this->db->prepare($_sql); if($stmt) { $stmt->execute($_array); return $stmt->rowCount(); }else{ return false; } } /** * 获取一个字段值 * @param string $_sql * @param array $_array * * @return int */ public function getColumn($_sql, $_array = null) { $_sql = $this->dealPrefix($_sql); if (is_array($_array)) { $stmt = $this->db->prepare($_sql); if($stmt) $stmt->execute($_array); } else { $stmt = $this->db->query($_sql); } if($stmt) { return $stmt->fetchColumn(); }else{ return false; } } /** * 执行语句 * @param string $_sql * @param array $_array * * @return int|\PDOStatement */ public function exec($_sql, $_array = null) { $_sql = $this->dealPrefix($_sql); if (is_array($_array)) { $stmt = $this->db->prepare($_sql); if($stmt) { return $stmt->execute($_array); }else{ return false; } } else { return $this->db->exec($_sql); } } /** * 返回最后插入行的ID * * @return int|\PDOStatement */ public function lastInsertId() { return $this->db->lastInsertId(); } /** * 返回错误信息 * * @return string|\PDOStatement */ public function error() { $error = $this->db->errorInfo(); return '['.$error[1].']'.$error[2]; } function __get($name) { return $this->$name; } function __destruct() { $this->db = null; } }