`
兰迪RANDY
  • 浏览: 98718 次
文章分类
社区版块
存档分类
最新评论

PDO单例模型

阅读更多
<?php
/**
 * ipdo.php
 *
 * discription
 *
 * @filename ipdo.php
 * @version  v1.0
 * @update   2011-4-27
 * @author   randy.hong
 * @contact	 homingway@163.com
 * @package  pdo
 */

//DB config
define('DB_HOST',   'localhost');
define('DB_PORT',   '3306');
define('DB_USER',   'root');
define('DB_PASSWD', '123456');
define('DB_CHARSET','utf8');


class IPDO {

    /**
     * The singleton instance
     */
    static public $PDOInstance;

  	/**
  	 * Creates a PDO instance representing a connection to a database and makes the instance available as a singleton
  	 * @return PDO
  	 */
    public function __construct(){
    	$dsn = 'mysql:host='.DB_HOST.';port='.DB_PORT.';dbname='.DB_NAME;
    	$driver_options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES ".DB_CHARSET);
        if(!self::$PDOInstance) {
	        try {
               self::$PDOInstance = new PDO($dsn, DB_USER, DB_PASSWD, $driver_options);
               self::$PDOInstance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            } catch (PDOException $e) {
                die($e->getMessage());
            }
    	}
      	return self::$PDOInstance;
    }

}


//使用
$pdo = new IPDO();

?>
分享到:
评论
1 楼 yeaha 2011-08-14  
看起来总有怪怪的感觉

// php-5.3 only
class IPDO {
    static private $instance;

    public function __construct() {
    }

    static public function instance() {
        return self::$instance ?: (self::$instance = new self());
    }
}

相关推荐

    Database:使用 [Fluent]PDO 的数据库抽象层

    组件-数据库使用 PDO 的 PHP 5.3+ 数据库抽象层。... 它们允许模型验证数据,例如列和索引。 创建并注册您的表架构。 请注意,数据库是一个单例,可通过instance()访问。 Database :: instance ()-&gt; register

    DuoLamPHP框架 v1.0

    数据库使用PDO (确保开启了PDO,不然无法使用数据库)  核心编译功能,所有核心成为一个文件,减少加载次数,飞一般的感觉  简单强大的数据操作,大幅度减少CRUD操作  高效的缓存系统 简单、快速的数据模型...

    DuoLam PHP框架 v1.0 内测版.rar

    数据库使用PDO (确保开启了PDO,不然无法使用数据库) 核心编译功能,所有核心成为一个文件,减少加载次数,飞一般的感觉 简单强大的数据操作,大幅度减少CRUD操作 高效的缓存系统 简单、快速的数据模型对象ORM ...

    PHP实例开发源码—MyWebSQL php数据库管理.zip

    理解MVC模式可以帮助我们更好地组织和理解源码结构,模型层负责数据处理,视图层负责数据显示,控制器层协调模型和视图的交互。 4. Web界面设计:MyWebSQL的用户界面是通过HTML、CSS和JavaScript构建的。理解如何用...

    php-blog:基于mvc的简单PHP OOP博客

    ...这种设计模式能够清晰地分离业务逻辑、数据处理和用户界面,从而提高代码的可读性和可维护性。 ...随着需求的增长,可以逐步引入更多的设计模式和最佳实践,如单例、工厂、策略等,提升代码质量。

    PHP4.0 Web 开发技术指南(PDG)

    内容可能涉及MVC(模型-视图-控制器)架构、设计模式(如工厂模式和单例模式)、以及如何组织代码以实现良好的可维护性和可扩展性。此外,书中还可能介绍如何利用PHP实现动态网页和交互式用户界面。 在基本网络应用...

    PHP精粹编写高效PHP代码 书本源码

    6. **设计模式**:书中可能介绍了各种设计模式,如工厂模式、单例模式、观察者模式等,这些模式在复杂项目中起到关键作用。 7. **代码组织与架构**:良好的代码结构对于维护性和可扩展性至关重要。MVC(模型-视图-...

    基于PHP的TSimple源码.zip

    1. **设计模式**:TSimple可能采用了常见的设计模式,如工厂模式、单例模式、观察者模式等,这些模式在代码组织和模块化中扮演着重要角色,帮助提高代码的可读性和可维护性。 2. **面向对象编程**:PHP 5及更高版本...

    PHP项目实例开发

    理解模型负责业务逻辑,视图负责展示,控制器协调两者的工作原理,能帮助构建可维护的代码结构。 4. 框架应用:如Laravel、Symfony、CodeIgniter等PHP框架简化了开发过程,提供了预设的结构和最佳实践。学习如何...

    PHP实例开发源码-鑫宇秒赞源码 php版.zip

    鑫宇秒赞源码可能采用了某种设计模式,如MVC(Model-View-Controller)、单例模式或工厂模式,以提升代码结构和可扩展性。 9. 响应式设计: 如果源码包含了前端代码,那么可能考虑了响应式设计,使网站在不同设备...

    php mysql 面试题集锦

    - 单例模式:确保类只有一个实例,并提供一个全局访问点。 - 工厂模式:提供一个创建对象的接口,让子类决定实例化哪一个类。 - 观察者模式:定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有...

    ThinkPHP开发的CMS系统源码

    - **MVC模式**:ThinkPHP采用Model-View-Controller架构模式,将业务逻辑、数据模型和用户界面分离,使得代码结构清晰,易于维护。 - **自动路由**:框架提供了自动路由机制,能够根据URL请求自动匹配控制器和方法...

    crud_oo

    模型(Model)处理数据和业务逻辑,视图(View)负责展示,控制器(Controller)协调模型和视图的交互。 8. **CRUD_oo-master**文件夹很可能包含了该项目的源代码,包括类文件(如DBConnection, CRUDOperation等)...

    PHP实例开发源码—Loowei php网址导航程序源码.zip

    通过分析数据库表结构,我们可以学习如何设计符合业务需求的数据模型,以及如何使用PHP的PDO或mysqli扩展进行数据操作,如CRUD(创建、读取、更新、删除)操作。 3. **模板引擎**:Loowei程序可能采用了某种模板...

    PHP高级教程

    2. **设计模式**:设计模式是解决常见编程问题的经验总结,如单例模式、工厂模式、观察者模式等。它们提供了一种标准的方式来处理特定的设计问题,使代码更具可读性和可扩展性。 3. **框架**:PHP有许多流行框架,...

    基于PHP的企业网站网站案例网源码 自带30套模板 php版.zip

    2. MVC(模型-视图-控制器)架构:通常用于大型Web项目,将业务逻辑、数据处理和用户界面分离,提高代码的可维护性和可扩展性。 3. 数据库交互:如使用PHP与MySQL数据库进行连接、查询、增删改查等操作,了解PDO或...

    Java及PHP设计开发资料整理

    - **JVM**:理解Java虚拟机的工作机制,包括内存模型、垃圾回收、类加载器等。 - **多线程**:掌握线程的创建与同步,包括Thread类、Runnable接口、synchronized关键字和Lock接口。 - **IO流**:熟悉输入输出流...

    PHP框架需要具备那些知识?.docx

    6. **数据库封装**:设计数据库访问层,包括SQL查询构造、事务处理和连接管理,可以考虑使用PDO或MySQLi扩展。 7. **缓存封装**:了解如何使用缓存技术如file caching, memcached或redis,以提高应用程序性能。 8....

    Riski-Fiat

    这些框架提供了MVC(模型-视图-控制器)架构,简化了开发过程,增强了可维护性和可扩展性。 3. 数据库交互:如果"Riski-Fiat"涉及数据库操作,它可能使用了PHP的PDO(PHP Data Objects)扩展来安全地连接和查询...

Global site tag (gtag.js) - Google Analytics