//私有的构造方法用来阻止在类的外部实例化private function __construct($param){$this->initData($param);$this->connectDB();

}//私有的__clone阻止在类的外部clone对象

private function__clone(){

}//获取单例,公有的静态方法用来获取对象的单例

static function getInstance($param){if(!self::$instanceinstanceof self){

self::$instance = new self($param);

}return self::$instance;

}//初始化参数

private function initData($param = array()){$this->host = $param['host']??'127.0.0.1';$this->port = $param['port']??'3306';$this->user = $param['user']??'';$this->pwd = $param['pwd']??'';$this->dbname = $param['dbname']??'';$this->charset = $param['charset']??'utf8';

}//连接数据库

private functionconnectDB(){$this->link =@mysqli_connect($this->host,$this->user,$this->pwd,$this->dbname);if(!$this->link){echo '连接数据库失败';echo '错误:'.mysqli_connect_error,'
';echo '错误码:'.mysqli_connect_errno,'
';exit;

}

mysqli_set_charset($this->link,$this->charset);

}//执行数据库的增、删、改、查语句

private function executeSQL($sql){$rs = mysqli_query($this->link,$sql);if(!$rs){echo '执行sql语句失败';echo '错误:'.mysqli_error($this->link);echo '错误码:'.mysqli_errno($this->link);exit;

}return $rs;

}//执行增、删、改 并返回执行结果(true 或 false)

function executeZSG($sql){if(in_array(substr($sql,0,6),array('delete','update','insert'))){return $this->executeSQL($sql);

}else{echo '非法访问
';exit;

}

}//获取自动增长的编号

functiongetIncrement(){return mysqli_insert_id($this->link);

}//执行查询语句

private function query($sql){if(substr($sql,0,4) == 'desc' || substr($sql,0,4) == 'show' || substr($sql,0,6) == 'select'){return $this->executeSQL($sql);

}else{echo '非法访问
';exit;

}

}//执行查询语句,返回二维数组

function fetchAll($sql,$type='assoc'){$rs = $this->query($sql);$type = $this->getType($type);return mysqli_fetch_all($rs,$type);

}//匹配一维数组

function fetchRow($sql,$type='assoc'){$list = $this->fetchAll($sql,$type);if(!empty($list)){return $list[0];

}return array();

}//匹配一行一列

function fetchColumn($sql){$list = $this->fetchAll($sql,'num');if(!empty($list)){return $list[0];

}return null;

}//获取匹配类型

private function getType($type){switch($type){case 'num':

returnMYSQLI_NUM;case 'both':

returnMYSQLI_BOTH;default:

returnMYSQLI_ASSOC;

}

}

}$param = array('user' => 'root',

'pwd' => 'root',

'dbname' => 'mycool');//获取单例

$db=MySQLDB::getInstance($param);//var_dump($db);

//更新

// $db->executeZSG("update b set age=122 where id=11");

//插入

// if($db->executeZSG("insert into b values (null,55,66,22)"))

// echo '编号是:'.$db->getIncrement();

// 删除

// if($db->executeZSG("delete from b where id=11"))

// echo '删除成功';

//查询

// $list=$db->fetchAll('select * from b','assoc');

// var_dump($list);

// $list=$db->fetchRow('select * from b where id=9','num');

// var_dump($list);

// $list=$db->fetchColumn('select count(*) from b','assoc');

// var_dump($list);

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐