0
我只是創建一個簡單的獨立庫存更新程序,並將我的手轉向OOP,而不僅僅是基於函數。我創建了一個簡單的類,它需要我的數據庫連接,但想知道包含和使用數據庫連接的最佳做法。第一個exert是將使用數據庫的類。第二個是'dbconnector.php'的內容。使用外部數據庫類創建新類
class stockUpdater {
var $data = '';
function __construct() {
include('dbconnector.php');
print_r($mysqli);
//check and get file
$fp = fopen('stockfiles/stockfile.csv', 'r');
if($fp){
while(! feof($fp)) {
$prods[] = fgetcsv($fp);
}
}
if(empty($prods)){
$this->logError(time(),'No data found in file');
}
}
//error logging function
private function logError($time, $message){
}
}
$updateStock = new stockUpdater();
我知道我在做什麼這裏工作,但不知道是否有這樣做比包括數據庫連接腳本在每類中只需要1時,這可能會創建多個數據庫連接的更好的方法。
$mysqli = new mysqli(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
/*
* This is the "official" OO way to do it,
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
*/
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
/*
* Use this instead of $connect_error if you need to ensure
* compatibility with PHP versions prior to 5.2.9 and 5.3.0.
*/
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
我想你應該叫dbconnector當你實例化類。類的想法是普遍的 - 所以每次你需要不同的連接時,你調用不同的dbconnector並實例化同一個類的新對象。 – 2013-04-04 11:04:13
你能舉個例子嗎?不是100%確定我明白你的意思 – 2013-04-04 11:07:46
最簡單的例子:'public function __construct($ conn){include(''。$ conn。''); ......; '$ conn ='dbconnector.php'; $ a = new stockUpdater($ conn);'...; ...'$ conn2 ='dbconn2.php'; $ b = new stockUpdater($ conn2);'...所以從stockUpdater()實例化對象作爲$ a將與dbconnector.php連接,但在$ b上實例化的同一類將與dbconn2.php連接 – 2013-04-04 11:08:26