php Singleton db connect

以下是之前自己用到的数据库连接单例模式,具体如下:


<?php
/**
 * Created by JetBrains PhpStorm.
 * User: yang
 * Date: 7/18/12
 * Time: 2:11 PM
 * To change this template use File | Settings | File Templates.
 */
include_once"../../../lib/Log4PHP/Log4PHP.php";
include_once"../../common/poolConnect.php";
class dbUtil
{

    //数据库连接实例
    private static $dbConn_ = null;  

    //将构造函数设置为private,防止外部过度实例化
    private function __construct()
    {
		//创建一个数据库连接
        return @poolConnect();
    }

    //将__clone函数设置为private,防止外部克隆
    private function __clone()
    {

    }

    //获取数据库连接实例
    public static function  getDbConn()
    {
        //如果数据库连接实例为空
        if(!self::$dbConn_)
        {
			//创建数据库连接实例
            self::$dbConn_ = new dbUtil();
            
			//如果创建失败记录相应的信息
            if (!self::$dbConn_)
            {
                Log4PHP::getLogger("dbUtil") 
		                            ->error("getDbConn -- the connection of database fails (log by yang)");
                $oci_errorMessage = oci_error()['message'];
                Log4PHP::getLogger("dbUtil")
		                           ->error("getDbConn -- oci_error is". $oci_errorMessage. "(log by yang)");

                throw new Exception("抱歉!系统数据库连接异常");
            }

        }

        return self::$dbConn_ ;

    }

    //关闭数据库连接实例
    public static function closeDbConn()
    {
        if(self::$dbConn_)
        {
			//关闭数据库连接
            $dbCloseResult = @oci_close(self::$dbConn_);

            //如果数据库关闭失败记录相应信息
            if( !$dbCloseResult )
            {
                Log4PHP::getLogger("dbUtil") ->error("closeDbConn -- close the database fails (log by yang)");
                $oci_errorMessage = oci_error()['message'];
                Log4PHP::getLogger("dbUtil")->error("closeDbConn -- oci_error is $oci_errorMessage (log by yang)");

                throw new Exception("抱歉!系统数据库关闭异常");
            }

            return true;
        }

        return false;
    }

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值