<?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);