当前位置:Gxlcms > 数据库问题 > php-单例模式实现mysql实例化对象

php-单例模式实现mysql实例化对象

时间:2021-07-01 10:21:17 帮助过:37人阅读

    上篇学习了php一个实例:简单的文章管理系统

2.学习点

    这篇将使用单例模式封装一个实现mysql的实例化对象类

3.实现类

    3.1 配置文件 config.php

         定义常量:主机地址,用户名,密码,数据库名称。
<span style="font-size:18px;"><?php

define('HOST','localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'test');
</span>

    3.2 实现 mysqlUtil.php 

         通过单例模式实例化 mysql_connect() 对象和选择数据库,设置编码集!
<span style="font-size:18px;"><?php
// 单例模式 连接数据库
// 构造函数标记为非public
// 拥有保存类实例的静态成员
// 拥有访问这个实例的公告方法
require_once 'config.php';
class Db {
	
	// 保存实例的静态成员
	private static $_instance;
	private static $_conn;
	// 构成函数
	private function __construct() {
	}
	
	/**
	 * 公共入口方法
	 */
	static public function getInstance() {
		// 检测不到,重新实例化 对象
		if (! (self::$_instance instanceof self)) {
			self::$_instance = new self ();
		}
		return self::$_instance;
	}
	
	/**
	 * 连接方法
	 * 
	 * @return resource
	 */
	public function connect() {
		if (! self::$_conn) {
			self::$_conn = mysql_connect ( HOST, USERNAME, PASSWORD );
			//self::$_conn=mysql_connect('localhost','root','');
			if (! self::$_conn) {
				die ( '连接失败  ' . mysql_error () );
			}
			// 选择数据库
			mysql_select_db (DATABASE, self::$_conn );
			// 设置字符集
			mysql_query ( "set names utf8", self::$_conn );
		}
		return self::$_conn;
	}
}

?></span>


    3.3 调用和使用

<span style="font-size:18px;">//调用
$con=Db::getInstance()->connect();

//查询语句
$sql='select * from user_info';
//执行,返回结果集
$result=mysql_query($sql,$con);
//添加的新数组
$arr3=array();
while ($row=mysql_fetch_row($result)){
	array_push($arr3,$row);
}</span>


4.总结

  使用的时候,需要配置 config.php 文件和调用的时候,不要忘了 调用 connect()方法!

5.demo下载

 http://download.csdn.net/detail/lablenet/8995925







版权声明:本文为博主原创文章,未经博主允许不得转载。

php-单例模式实现mysql实例化对象

标签:mysql   mysql_query   php   config.php   mysqlutil.php   

人气教程排行