0

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

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

你能告诉我如何解决我的问题或者我应该从哪里开始寻找

例如

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');?>

文件数据库.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;
    }
}?>
4

0 回答 0