所以我有一個我在web應用中使用的函數列表。然而,大多數函數調用數據庫類。這裏有兩個功能,例如:爲多個函數聲明一個全局對象
function add_post($userid,$body,$cat_id,$user_link){ //This function inserts new posts into the db
$db = new MysqliDb('localhost', 'root', 'root', 'my_db');
$now = date("Y-m-d H:i:s");
$insertData = array(
'user_id' => $userid,
'body' => $body,
'stamp' => $now,
'cat_id' => $cat_id,
'link' => $user_link
);
$db->insert('posts', $insertData);
}
function grab_username($userid){ //This function takes a user id, and returns the associated user_name
$db = new MysqliDb('localhost', 'root', 'root', 'my_db');
$params = array($userid);
$results = $db->rawQuery("SELECT username FROM users WHERE id = ?", $params);
//print_r($results);
foreach($results as $arrays){
foreach($arrays as $name){
return $name;
}
}
}
的問題是,我經常寫行:
$db = new MysqliDb('localhost', 'root', 'root', 'my_db');
有沒有一種方法,我可以在全球聲明變量,有更多的東西是這樣的:
$db = new MysqliDb('localhost', 'root', 'root', 'my_db');
function add_post($userid,$body,$cat_id,$user_link){ //This function inserts new posts into the db
$now = date("Y-m-d H:i:s");
$insertData = array(
'user_id' => $userid,
'body' => $body,
'stamp' => $now,
'cat_id' => $cat_id,
'link' => $user_link
);
global $db->insert('posts', $insertData);
}
我希望你是不嚴肅的。爲每個類創建一個單獨的數據庫連接? –
如果他只使用這個類的單個實例,就像我個人解釋他的問題一樣,這樣可以。如果他使用多個實例,那麼明顯的依賴注入或獲取單個數據庫實例的一些中心方法會更好。 – helion3
這不是他的應用程序中唯一的類。 –