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

Original 2019-03-21 11:23:18 265
abstract:<?php class Db{ //数据库的配置信息   private static $dbConnect;   private $dbConfig = array(     'host' => '12
<?php
class Db{
//数据库的配置信息
  private static $dbConnect;
  private $dbConfig = array(
    'host' => '127.0.0.1',
    'user' => 'root',
    'password' => 'root',
    'database' => 'php',
  );
//将构造方法私有化:禁止从外部实例化类
	private function __construct() {}

//将克隆方法私有化:禁止从外部克隆该类的实例
	private function __clone() {}
	
//创建内部属性$instance,用来保存当前类实例
	protected static $instance = null;
//创建外部接口,用来返回当前类的唯一实例
	public static function getInstance()
	{
		if (is_null(static::$instance)) {
			static::$instance = new static();
		}

		return static::$instance;
	}
	public function connect(){
            self::$dbConnect = mysql_connect($this->dbConfig['host'],
              $this->dbConfig['user'],$this->dbConfig['password']);
            //验证数据库连接
            if(!self::$dbConnect){
              throw new Exception("mysql connect error".mysql_error());
            }
            //设置字符集
            mysql_query("SET NAMES UTF8");
            //连接数据库
            mysql_SELECT_db($this->dbConfig['database'],self::$dbConnect);
            return self::$dbConnect;
      }
}
//从类的外部实例化当前类
$Db_connect= Db::getInstance();
?>


Correcting teacher:天蓬老师Correction time:2019-03-21 13:06:03
Teacher's summary:throw new Exception("mysql connect error".mysql_error()); 这个习惯比较好, 不过, 上线后, 记得把它注释掉

Release Notes

Popular Entries