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

深圳网站建设

查看: 355|回复: 0

php教程单例、初始化参数、实例化PDO

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-12-10 21:05:04 | 355 | 0 | 显示全部楼层 |阅读模式
php教程单例、初始化参数、实例化PDO

语法代码如下:
  1. <?php
  2. class MyPDO{
  3.     private $type;      //数据库类别
  4.     private $host;      //主机地址
  5.     private $port;      //端口号
  6.     private $dbname;    //数据库名
  7.     private $charset;   //字符集
  8.     private $user;      //用户名
  9.     private $pwd;       //密码
  10.     private $pdo;       //保存PDO对象
  11.     private static $instance;
  12.     private function __construct($param) {
  13.         $this->initParam($param);
  14.         $this->initPDO();
  15.     }
  16.     private function __clone() {
  17.     }
  18.     public static function getInstance($param=array()){
  19.         if(!self::$instance instanceof self)
  20.             self::$instance=new self($param);
  21.         return self::$instance;
  22.     }
  23.     //初始化参数
  24.     private function initParam($param){
  25.         $this->type=$param['type']??'mysql';
  26.         $this->host=$param['host']??'127.0.0.1';
  27.         $this->port=$param['port']??'3306';
  28.         $this->dbname=$param['dbname']??'data';
  29.         $this->charset=$param['charset']??'utf8';
  30.         $this->user=$param['user']??'root';
  31.         $this->pwd=$param['pwd']??'root';
  32.     }
  33.     //初始化PDO
  34.     private function initPDO(){
  35.         try{
  36.             $dsn="{$this->type}:host={$this->host};port={$this->port};dbname={$this->dbname};charset={$this->charset}";
  37.             $this->pdo=new PDO($dsn, $this->user, $this->pwd);
  38.         } catch (PDOException $ex) {
  39.             echo '错误编号:'.$ex->getCode(),'<br>';
  40.             echo '错误行号:'.$ex->getLine(),'<br>';
  41.             echo '错误文件:'.$ex->getFile(),'<br>';
  42.             echo '错误信息:'.$ex->getMessage(),'<br>';
  43.             exit;
  44.         }
  45.     }
  46. }
  47. //测试
  48. $param=array(
  49. );
  50. $mypdo= MyPDO::getInstance($param);
  51. var_dump($mypdo);
复制代码

楼主热帖

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

支付宝扫一扫打赏

微信扫一扫打赏

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