深圳市金黑网络技术有限公司始终坚持以用户需求为导向,提供安全、稳定、高效的产品和服务!
签到 · 搜索导航 · 服务热线 · 微信/手机:17817817816

深圳网站建设

查看: 316|回复: 0

php封装MySQL的单例连接数据库

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-12-9 11:58:56 | 316 | 0 | 显示全部楼层 |阅读模式
php封装MySQL的单例连接数据库

代码如下:
  1. <?php
  2. //封装MySQL单例
  3. class MySQLDB {
  4.         private $host;                //主机地址
  5.         private $port;                //端口号
  6.         private $user;                //用户名
  7.         private $pwd;                //密码
  8.         private $dbname;        //数据接名
  9.         private $charset;        //字符集
  10.         private $link;                //连接对象
  11.         private static $instance;
  12.         private function __construct($param) {
  13.                 $this->initParam($param);
  14.                 $this->initConnect();
  15.         }
  16.         private function __clone() {
  17.                
  18.         }
  19.         //获取单例
  20.         public static function getInstance($param=array()) {
  21.                 if(!self::$instance instanceof self)
  22.                         self::$instance=new self($param);
  23.                 return self::$instance;
  24.         }
  25.         //初始化参数
  26.         private function initParam($param) {
  27.                 $this->host=$param['host']??'127.0.0.1';
  28.                 $this->port=$param['port']??'3306';
  29.                 $this->user=$param['user']??'';
  30.                 $this->pwd=$param['pwd']??'';
  31.                 $this->dbname=$param['dbname']??'';
  32.                 $this->charset=$param['charset']??'utf8';
  33.         }
  34.         //连接数据库
  35.         private function initConnect() {
  36.                 $this->link=@mysqli_connect($this->host,$this->user,$this->pwd,$this->dbname);
  37.                 if(mysqli_connect_error()){
  38.                         echo '数据库连接失败<br>';
  39.                         echo '错误信息:'.mysqli_connect_error(),'<br>';
  40.                         echo '错误码:'.mysqli_connect_errno(),'<br>';
  41.                         exit;
  42.                 }
  43.                 mysqli_set_charset($this->link,$this->charset);
  44.         }
  45. }

  46. //测试
  47. //配置参数
  48. $param=array(
  49.         'user'                =>        'root',
  50.         'pwd'                =>        'root',
  51.         'dbname'        =>        'data'
  52. );
  53. //获取单例
  54. $db=MySQLDB::getInstance($param);
  55. var_dump($db);
复制代码

数据库是否链接成功打印下,var_dump($db);
楼主热帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表