PHP单例模式控制MySql连接数

      在Mysql驱动的PHP网站中,MySql连接的一般都是利用脚本的结束来进行释放,在一些分层写的php网站中,若一个页面含有多个数据访问类,由于每个数据访问类都会有数据库的连接,导致这一个页面在脚本结束前会有多个数据库连接,在一些大型的页面连接可能多至数十上百,为此需要进行必要的控制,对于解释性的PHP语言,脚本是顺序执行的,也就是说数据库连接的利用同时只有一个,根据这个特点,可以用单例模式来进行改造。

<?php
class ConnecToDB
{

private static $instance;
private function _constuct(){} //私有构造函数,防止外界构造新对象,
static public function GetConnec()
{
if(!self::$instance instanceof self)
{
self::$instance =new self;//若当前对象实例不存在
}
$temp=self::$instance; //获取当前单例
return $temp::Con() ; //调用对象私有方法连接 数据库
}
//连接到数据库
static private function Con()

{
try
{
$connec=mysql_connect("127.0.0.1","user","password"); //数据库地址和密码等
mysql_select_db("dbname");//选择数据库

}
catch(Exception $e)
{
echo $e->getMessage().'<br/>';
}
return $connec;

}

}
?>

     当然这个代码中,数据库的账号、密码等连接信息都是硬编码,可以通过改造GetConnec()函数注入相应的信息。

     通过这段脚本,就可以控制一个页面只有一次数据库连接。

posted @ 2011-11-23 10:55  好好学习_Dream  阅读(3369)  评论(1编辑  收藏  举报