你好親愛的 可能我為這個(gè)討論選擇的主題可能不是很合適,但讓我們來解決問題在 PHP 中,我有一個(gè)名為的類DB,在此class我編寫數(shù)據(jù)庫(kù)關(guān)系以連接到數(shù)據(jù)庫(kù):class DB { private static $_dbConnect = null, $dbUser = DB_USER, $dbPass = DB_PASS, $dbName = DB_NAME, $dbTable = null; function __construct($dbTable) { self::$dbTable = $dbTable; if (!isset(self::$_dbConnect) || self::$_dbConnect == null) { try { self::$_dbConnect = new PDO("mysql:host=localhost;dbname=".self::$dbName,self::$dbUser,self::$dbPass); $isResult = self::$_dbConnect->prepare("SHOW TABLES FROM ".self::$dbName." LIKE '${dbTable}'"); if ($isResult->rowCount() == 0) { $isQuery = ""; if ($dbTable == DB_TABLES['user']) { $isQuery = ""; //write user table query } else if ($dbTable == DB_TABLES['admin']) { $isQuery = ""; //write admin table query } self::$_dbConnect->prepare($isQuery); } } catch (PDOException $e) { throw $e->getMessage(); } } } private function ifString($strings=[],$sep='&') {} private function stringSep($strings=[]) {} public function existValue($strings=[]) {} public function insertTB($data=[],$ifArray=[]) {} public function getDataTB($ifArray=[]) {} public function updateTB($data=[],$ifArray) {} public function deleteTB($ifArray) {} public function getAllRecords($ifArray=[]) {} function __destruct() { if (isset(self::$_dbConnect) || self::$_dbConnect != null) { self::$_dbConnect = null; } }}但問題是因?yàn)槲以?中定義了數(shù)據(jù)庫(kù)連接__construct,當(dāng)我同時(shí)運(yùn)行它的兩個(gè)實(shí)例時(shí)會(huì)遇到麻煩class:$DB['user'] = new DB(DB_TABLES['user']);$DB['admin'] = new DB(DB_TABLES['admin']);問題是現(xiàn)在當(dāng)我嘗試使用時(shí)$DB['user'],事情已經(jīng)完成了$DB['admin']有解決方案的朋友嗎?
1 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
刪除static
了聲明_dbConnect
。static 意味著變量只定義一次,無論創(chuàng)建了多少類實(shí)例。
private $_dbConnect = null,
如果$_dbConnect
不是靜態(tài)的,則對(duì)的引用self::$_dbConnect
應(yīng)替換為$this->$_dbConnect
.
- 1 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報(bào)
0/150
提交
取消