php单例数据库,php单例连接数据库

mysql_connect() 后续的php就不支持了,所以会报错。

现在改为使用mysqli_connect(),需要开启php扩展哟!

/**

* 设计模式之单例模式

* $_instance必须声明为静态的私有变量

* 构造函数和析构函数必须声明为私有,防止外部程序new

* 类从而失去单例模式的意义

* getInstance()方法必须设置为公有的,必须调用此方法

* 以返回实例的一个引用

* ::操作符只能访问静态变量和静态函数

* new对象都会消耗内存

* 使用场景:最常用的地方是数据库连接。

* 使用单例模式生成一个对象后,

* 该对象可以被其它众多对象所使用。

*/

class Danli{

//保存类实例的静态成员变量

private static $_instance = null;

private $conn;

//private标记的构造方法

private function __construct(){

//$conn = new mysqli(‘localhost‘, ‘root‘, ‘123‘, ‘php37‘);

$this->conn = mysqli_connect(‘localhost‘, ‘root‘, ‘123‘, ‘php37‘);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

exit();

}

}

//单例方法,用于访问实例的公共的静态方法

public static function getInstance(){

if(!self::$_instance instanceof self){

self::$_instance = new self;

}

return self::$_instance;

}

//创建__clone方法防止对象被复制克隆

private function __clone(){ }

// 防止析构函数被调用

// private function __destruct(){ }

}

//用new实例化private标记构造函数的类会报错

//$danli = new Danli();

//正确方法,用双冒号::操作符访问静态方法获取实例

$danli=Danli::getInstance();

var_dump($danli);

//$danli->test();

//复制(克隆)对象将导致一个E_USER_ERROR

//$danli_clone=clone $danli;

工作没找到,天天帮朋友解决问题倒成了我的正式。要努力找工作,加油······

php单例连接数据库

标签:地方   host   常用   操作   errno   function   new   stat   努力

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/sxiangyues/p/6529943.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值