<?php
/**
* 单例模式创建数据库封装类
*/
class Db
{
//单例模式,本类的实例对象
private static $instance = null;
//数据库连接对象
private $conn = null;
//数据库的默认连接参数
private $dbConfig = array(
'host' => '127.0.0.1', //主机名称
'port' => '3306', //默认端口
'user' => 'root', //用户名
'pass' => '123456', //密码
'charset' => 'utf8', //默认字符集
'dbname' => 'study', //默认数据库
);
//采用单例模式私有化防止外部实例化
private function __construct($param)
{
//初始化连接参数
$this->dbConfig = array_merge($this->dbConfig,$param);
//链接数据库
$this->connect();
}
//禁止外部克隆
private function __clone(){
}
// 获取当前类的单一实例
public static function getInstance($param){
if(!self::$instance instanceof self){
self::$instance = new self($param);
}
return self::$instance;
}
//数据库链接
private function connect(){
//配置数据源
$this->conn = new mysqli($this->dbConfig['host'],$this->dbConfig['user'],$this->dbConfig['pass'],$this->dbConfig['dbname']);
$this->conn->query("SET NAMES {$this->dbConfig['charset']}");
if($this->conn->connect_error){
die("连接失败: " . $this->conn->connect_error);
}
}
//完成数据表的写操作:新增,更新,删除
public function exec($sql){
return mysqli_query($this->conn,$sql);
}
//查询单条数据
public function find($sql){
$result = mysqli_query($this->conn,$sql);
return mysqli_fetch_array($result);
}
//查询所有数据
public function select($sql){
$result = mysqli_query($this->conn,$sql);
while($row= mysqli_fetch_array($result)){
$data[] = $row;
}
return $data;
}
}
?>