qartalonline
دوشنبه 15 مهر 1392, 22:04 عصر
سلام دوستان
من در حال طراحی سیستم مدیریت محتوا با الگوی mvc هستم و برای اتصال به پایگاه داده از کلاس زیر استفاده میکنم:
class DataBase {
public function DataBaseConnect() {
global $_db;
if (!isset($_db) || $_db!=NULL) {
return $this->dbConnect();
}
}
private function dbConnect() {
try {
$db = new PDO('mysql:dbname='. DB_DATABASE. ';host='.DB_HOST, DB_USER, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8') );
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $exc) {
errorHandler(8300, $exc->getMessage());
return FALSE;
}
return $db;
}
}
سپس اون رو بصورت زیر به کار میبرم:
global $_db;
requireOnce('database', 'class');
$db = new DataBase();
$_db = $db->DataBaseConnect();
و در برخی از کلاس ها بصورت زیر هم از پایگاه داده استفاده میکنم:
$this->link = $_db;
حالا چند تا سوال داشتم:
1. اینکه این روش به نظرتون درسته یا نه؟
2. اگه بخواییم اتصال به پایگاه داده رو قطع کنیم باید تمام متغییرها ($db ، $_db و $this->link) رو از بین ببریم؟
با تشکر
من در حال طراحی سیستم مدیریت محتوا با الگوی mvc هستم و برای اتصال به پایگاه داده از کلاس زیر استفاده میکنم:
class DataBase {
public function DataBaseConnect() {
global $_db;
if (!isset($_db) || $_db!=NULL) {
return $this->dbConnect();
}
}
private function dbConnect() {
try {
$db = new PDO('mysql:dbname='. DB_DATABASE. ';host='.DB_HOST, DB_USER, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8') );
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $exc) {
errorHandler(8300, $exc->getMessage());
return FALSE;
}
return $db;
}
}
سپس اون رو بصورت زیر به کار میبرم:
global $_db;
requireOnce('database', 'class');
$db = new DataBase();
$_db = $db->DataBaseConnect();
و در برخی از کلاس ها بصورت زیر هم از پایگاه داده استفاده میکنم:
$this->link = $_db;
حالا چند تا سوال داشتم:
1. اینکه این روش به نظرتون درسته یا نه؟
2. اگه بخواییم اتصال به پایگاه داده رو قطع کنیم باید تمام متغییرها ($db ، $_db و $this->link) رو از بین ببریم؟
با تشکر