PHP에서 MVC를 배우고 데이터베이스 액세스를 위해 PDO를 사용하고 있습니다.PHP MVC PDO 다중 데이터베이스
내 데이터베이스 클래스는 다음과 같이 (I 데이터베이스 변수에 대한 설정 파일에 DEFINE 사용)입니다 :
class Database extends PDO {
public function __construct($dbconn ="mysql") {
$options = array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING);
switch($dbconn) {
case 'usados':
parent::__construct(DB_TYPE_USADOS . ':host=' . DB_HOST_USADOS . ';dbname=' . DB_NAME_USADOS, DB_USER_USADOS, DB_PASS_USADOS, $options);
break;
case 'autos':
parent::__construct(DB_TYPE_AUTOS . ':host=' . DB_HOST_AUTOS . ';dbname=' . DB_NAME_AUTOS, DB_USER_AUTOS, DB_PASS_AUTOS, $options);
break;
case 'servicos':
parent::__construct(DB_TYPE_SERVICOS . ':host=' . DB_HOST_SERVICOS . ';dbname=' . DB_NAME_SERVICOS, DB_USER_SERVICOS, DB_PASS_SERVICOS, $options);
break;
default:
parent::__construct(DB_TYPE_MYSQL . ':host=' . DB_HOST_MYSQL . ';dbname=' . DB_NAME_MYSQL, DB_USER_MYSQL, DB_PASS_MYSQL, $options);
break;
}
}
}
그리고 예를 들어 모델에서, 내가 가진 :
class Note_Model extends Model {
public $errors = array();
public function __construct() {
parent::__construct($dbconn="mysql");
}
public function getAllNotes() {
$sth = $this->db->prepare("SELECT user_id, note_id, note_text
FROM note
WHERE user_id = :user_id ;");
$sth->execute(array(':user_id' => $_SESSION['user_id']));
return $sth->fetchAll();
}
}
나는이 개 질문이 :
내 데이터베이스 클래스에서 다른 데이터베이스 연결에 대한 내 접근 방식입니다 (다른 m 알았지? 이 상황에서 스위치 구조가 잘 사용되고 어디에서 연결될 변수가 있습니까?
다른 모델의 다른 데이터베이스에 연결할 수 있지만 필요한 경우 동일한 모델의 다른 데이터베이스에서 데이터를 가져 오는 방법은 무엇입니까? 예를 들어, 여러 출처의 정보를 보여주는 대시 보드에 말하십시오. 그건 단지 $ this-> db가 아니죠?
고맙습니다.
FYI, OOP에서'extends' 키워드는 ** IS A **와 동의어입니다. * "Note_Model"은 PDO *라고 확신합니까? 또한 MVC의 모델은 계층이며 ** 클래스가 아닙니다 **. –
안녕하세요! 그래서 "Note_Model"이 필요하다면 모델이되어서는 안 될까요? 그러면 그것을 레이어로 만들려면 어떻게해야합니까? – mjpramos