PDO跨多个网站的课程

时间:2013-09-12 11:41:49

标签: php web pdo

我已经为单个网站编写了带有数据库连接的PDO类,但实际上我需要在多个网站上使用相同的类。

我的想法是,当我在班级中更改某些内容时,更改将反映在我的所有网站中,而不仅仅是一个,但这两个网站仍将使用2个单独的数据库

请您就如何解决我的问题或我应该从哪里开始寻找建议

e.g。

core\ classes \ product.class.php

Web_1 
-databass.class.php for Web_1 using the core\classes\

Web_2
-databass.class.php for Web_2 using the core\classes\

这是我的代码

文件dbConfig.php

<?php 
define('DB_TYPE', 'mysql');
define('USER_NAME', 'test');
define('USER_PASSWORD', '********');
define('HOSTNAME', 'localhost');
define('DB_NAME', 'test_db');?>

文件databass.class.php

<?php
include_once($_SERVER['DOCUMENT_ROOT'] . 'dbConfig.php');
class DatabasePDO
{
    private static $_instance = array();
    static function getInstance ($dbName = DB_NAME)
    {
        if (! array_key_exists($dbName, self::$_instance)) {
            $dsn = DB_TYPE . ":host=" . HOSTNAME . ";dbname=" . $dbName;
            try {
                self::$_instance[$dbName] = new PDO($dsn, USER_NAME, USER_PASSWORD);
                self::$_instance[$dbName]->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            } catch (PDOException $e) {
                echo "echo "Error!: " . $e->getMessage();
                die();
            }
        }
        return self::$_instance[$dbName];
    }
}?>

文件product.class.php

<?php
require_once "databass.class.php";

class products_CLS
{
    private $pid = null;
    private $title  = '';

    private static $dbConn = null;

    public function __construct ()
    {
        self::initializeConnection();
    }

    private static function initializeConnection ()
    {
        if (is_null(self::$dbConn)) {
            self::$dbConn = DatabasePDO::getInstance();
        }
    }

    /**
     * @return the $productid
     */
    public function getProductId()
    {
        return $this->pid;
    }   

    /**
     * @return the $producttitle
     */
    public function getProductTitle()
    {
        return $this->title;
    }
}?>

0 个答案:

没有答案