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

时间:2022-12-11 08:25:10

待续。。。

 

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 '插入数据';
	}

}