php实现单例模式数据连接,mysql数据库连接

作者:Liaodeity - 2015-04-11

    这是一个php的数据库连接的一个单例模式,可以在项目中通过类去连接数据,不会造成浪费数据库资源等现象。更有利于项目的开发比较的简单。

<?php
/**
 * PHP单例模式连接数据库
 * 利用单例模式连接数据库,节约数据库资源的开销,不会导致浪费数据资源
 * 用法:$connect = Db::getInstance()->connect();
 * 得到数据库连接资源$connect
 */
class Db {
	static private $_instance;
	static private $_connectSource;
	private $_dbConfig = array(
		'host' => '127.0.0.1',
		'user' => 'root',
		'password' => '',
		'database' => 'video',
	);
	/*防止类被new操作*/
	private function __construct() {
	}
	/*单例入口*/
	static public function getInstance() {
		if(!(self::$_instance instanceof self)) {/*判读类是否被创建*/
			self::$_instance = new self();
		}
		return self::$_instance;
	}
	/*PHP连接数据库*/
	public function connect() {
		if(!self::$_connectSource) {
			/*连接数据库*/
			self::$_connectSource = @mysql_connect($this->_dbConfig['host'], $this->_dbConfig['user'], $this->_dbConfig['password']);	

			if(!self::$_connectSource) {/*判读数据库是否连接成功*/
				throw new Exception('mysql connect error ' . mysql_error());
				//die('mysql connect error' . mysql_error());
			}
			/*数据库选择*/
			mysql_select_db($this->_dbConfig['database'], self::$_connectSource);
			/*数据库字符集*/
			mysql_query("set names UTF8", self::$_connectSource);
		}
		return self::$_connectSource;
	}
}
/*$connect = Db::getInstance()->connect();

$sql = "select * from video";
$result = mysql_query($sql, $connect);
echo mysql_num_rows($result);
var_dump($result);*/