0
我有一些困惑,我認爲提供數據庫連接到所有類文件
我試圖讓我的數據庫連接是我的類文件內可用的功能,讓我不需要把它注射到所有調用功能。我認爲這是這樣做的最巧妙的方法,但我不確定反彈
(簡體),我有3個文件
1)數據庫連接文件(使用PDO)
2)類文件,我的所有相關功能
3),這將是主要的HTML文件,其中包含所需的類和數據庫連接和啓動所需的實例文件。
我(簡體/減少)的類文件
我的數據庫連接文件
// database login details
//* Define these so that they can't be changed
DEFINE ('DBUSER', 'xxxxx');
DEFINE ('DBPASS', 'xxxxx');
DEFINE ('DBHOST', '192.168.0.99');
DEFINE ('DBPORT', '3999');
DEFINE ('DBNAME', 'xxxxx');
try {
$db = new PDO('mysql:host='.DBHOST.'; port='.DBPORT.'; dbname='.DBNAME.'; charset=utf8', DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $ex) {
echo 'An Error occured! '.$ex->getMessage(); //user friendly message
error_log('dbconn.php failed to connect to db - Exception caught: '.$ex->getMessage());
return false;
}
?>
我的測試頁
<?php
require_once('functions/dbconn.php');
require_once('class/products.class.php');
//$db = new Database(); // failed test
$products_obj = new SPD_Products();
$products_obj->setCategory($CategoryID = 1);
echo $products_obj->CategoryName;
?>
我試圖獲得數據庫的各種方式連接到類,但只有全局方法的作品,(我不認爲它是好的或整潔的想法...) 。上面的工作,但我想要一個更好的方式.... 我最終會有很多單獨的類文件,所以不想在每個類文件中建立一個新的連接,因爲我相信我只能做一次而不使用全球化,而不需要繼續注入並將它從功能傳遞到功能。
任何意見將不勝感激!
謝謝!我已經嘗試過,並嘗試過以前非常類似,但我不斷收到此錯誤致命錯誤:調用一個成員函數prepare()我做了$ db的連接$ this-> conn(我認爲) – Ford 2014-09-25 01:00:41
糟糕,我忘了在構造函數中添加$ this再次檢查 – meda 2014-09-25 01:06:53
看起來很棒!完美的作品!謝謝! – Ford 2014-09-25 01:09:46