我已经为单个网站编写了带有数据库连接的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;
}
}?>