设计模式 - 单例模式mysql数据库操作类

时间:2021-07-14 15:44:31

待续。。。

index.php

调用方法:

<?php
header('Content-Type:text/html; charset=utf8');
require 'instance.php'; $db = MySQLDB::getInstance('127.0.0.1:3306', 'root', '123456', 'test');
$db->insertData();

instance.php

单例操作类:

<?php
/**
* 单例模式MySQL数据库操作类
*/
class MySQLDB
{
/**
* 存储数据库来你就诶
* @var NULL
*/
private $_conn = NULL;
/**
* 存储实例对象
* @var null
*/
private static $_instance = NULL; /**
* 克隆方法
* @return null null
*/
private function __clone() { } /**
* 构造方法
* @param string $host 主机名称
* @param string $user 用户名
* @param int $pwd mima
* @param string $dbname 选择的数据库名称
* @param int $port 端口号
* @param string $charset 字符集
*/
private function __construct($host, $user, $pwd, $dbname, $port, $charset)
{
$this->_conn = mysqli_connect($host, $user, $pwd, $dbname, $port, $charset);
mysqli_set_charset($this->_conn, $charset);
} /**
* 获取对象方法
* @param string $host 主机名称
* @param string $user 用户名
* @param int $pwd mima
* @param string $dbname 选择的数据库名称
* @param int $port 端口号:默认3306
* @param string $charset 字符集:默认'utf8'
*/
public static function getInstance($host, $user, $pwd, $dbname, $port='3306', $charset='utf8')
{
if ( !(self::$_instance instanceof self) ) {
self::$_instance = new self($host, $user, $pwd, $dbname, $port, $charset);
}
return self::$_instance;
} #+++++++++++++++++++++++ 实现一些公开的方法 ++++++++++++++++++++++ public function insertData()
{
echo '插入数据';
} }