<?phpclass Db{ private $dbConfig=[ 'db'=>'mysql', 'host'=>'localhost', 'port'=>'3306', 'user'=>'root', 'pass'=>'root', 'charset'=>'utf8', 'dbname'=>'edu', ]; //单例模式 private static $instance = null; public $insertID = null; public $num1 = null; ///数据库的连接 private $conn = null; private function __construct($params) { //初始化参数 array_merge($this->dbConfig, $params); //连接数据库 $this->connect(); } private function __clone() { // TODO: Implement __clone() method. } public static function getInstance($params=[]) { if(!self::$instance instanceof self){ self::$instance = new self($params); } return self::$instance; } private function connect() { try { $dsn="{$this->dbConfig['db']}:host={$this->dbConfig['host']}; port={$this->dbConfig['port']};dbname={$this->dbConfig['dbname']}; charset={$this->dbConfig['charset']}"; //创建pdo对象 $this->conn= new PDO($dsn,$this->dbConfig['user'],$this->dbConfig['pass']); //// $this->conn->query("SET NAMES {$this->dbConfig['charset']}"); }catch (PDOException $e) { die('数据库连接失败'.$e->getMessage()); } } public function exec($sql) { $num = $this->conn->exec($sql); if($num>0) { if(null !== $this->conn->lastInsertID()) { $this->insertID = $this->conn->lastInsertID(); } $this->num1= $num; } else{ $error = $this->conn->errorInfo(); //0 是错误标识符 1 是错误代码 2 是错误信息 print '操作失败'.$error[0].':'.$error[1].':'.$error[2]; } } public function fetch($sql) { return $this->conn->query($sql)->fetch(PDO::FETCH_ASSOC); } public function fetchALl($sql) { return $this->conn->query($sql)->fetch(PDO::FETCH_ASSOC);; }}