여러 데이터베이스에 연결할 수있는 데이터베이스 클래스를 실행하려고합니다. 나는 다음과 같은 설정이 있습니다PHP 여러 변수로 한 클래스를 여러 번 초기화하십시오.
$auth = new Auth($db['host'], $db['user'], $db['name']['api'], $db['pass']['api']);
$apiuser = new APIUser($db['host'], $db['user'], $db['name']['users'], $db['pass']['users']);
그 모든 $ DB를 배열 변수가 올바르게 작동하지만 그렇지 않습니다 클래스입니다. 내가 ("내 쿼리 여기") this-> DB-> 쿼리 $를 실행하려고 할 때, 그러나
function __construct($dbh, $dbu, $dbn, $dbp) {
$this->db = new DB($dbh, $dbu, $dbn, $dbp);
}
, 각 클래스의 __construct 기능에서,이가 (이것은 입력 변수가있는 mysql_query를 반환합니다), 리소스 ID가 아니라 부울 값을 반환합니다 ... 이것은 $ apius가 $ apiauth 뒤에 오므로 클래스가 api 데이터베이스 대신 사용자 데이터베이스로 되돌아 가고 있기 때문입니다.
전혀 이해가되지 않는다면이 문제에 대한 도움을받을 수 있습니다. 감사!
편집 : DB 클래스의 일부주는 오류 : 그러나
function __construct($host, $user, $name, $pass) {
$this->error = new Error();
if(!mysql_connect($host, $user, $pass)) {
$this->error->db_connect_error($host, $user, $pass);
}
if(!mysql_select_db($name)) {
$this->error->db_select_error($name);
}
}
function query($input) {
return mysql_query($input);
}
DB 클래스를 보니 좋을 것입니다. – kennypu
그냥 게시했습니다. 감사합니다! – nwilging
$ 리소스를 직접 반환하는 것은 좋지 않지만 실제 결과를 반환하는 것이 좋습니다. 어쨌든 FALSE가 반환되면 다음 중 하나를 의미합니다. 1. 쿼리에 오류가 있습니다. 2. db 연결에 오류가 있습니다. 3. 지정된 사용자에게 테이블에 대한 액세스 권한이 없습니다. – kennypu