返回数据库连接的单......登陆

数据库连接的单例模式案例

笑颜常开2019-05-08 16:32:09191

<?php
header("content-type:text/html;charset=utf-8");
class DbSingleton
{
   private $charset = "utf8";         //字符串编码
   //私有的成员属性-为了防止在类外引入这个存放对象的属性
   private static $instance = NULL;   //存储对象
   //私有的构造方法-为了防止在类外使用new关键字实例化对象
   private function __construct($host, $username, $password, $dbname, $port)
   {
       $link = mysqli_connect($host, $username, $password, $dbname, $port);
       if (!$link) {
           die("连接错误: " . mysqli_connect_error());
       }
       else{
           echo "连接成功".'<br>';
       }
       // 修改数据库连接字符集为 utf8
       mysqli_set_charset($link, $this->charset);
       return $link;
   }
   //私有的克隆方法-为了防止在类外通过clone成生另一个对象
   private function __clone()
   {
   }
   //公有的静态方法-为了让用户进行实例化对象的操作
   public static function getInstance($host, $username, $password, $dbname, $port)
   {
       if (!self::$instance instanceof self) {
           self::$instance = new self($host, $username, $password, $dbname, $port);
       }
       return self::$instance;
   }
}

//数据库测试:
$host     = '127.0.0.1';
$username = 'root';
$password = 'root';
$dbname   = 'test';
$port     = 3306;
$db = DbSingleton::getInstance($host, $username, $password, $dbname, $port);
var_dump($db);
微信图片_20190508163148.png

最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送