첫 번째 데이터베이스에서 사용자를 인증하려는 응용 프로그램이 있습니다 & 다른 데이터베이스의 다른 활동을 관리하고 있습니다. 나는 두 개의 클래스를 만들었습니다. 클래스의 객체는 파일로 정의됩니다.두 데이터베이스에 연결
$objdb1=new db1(),$objdb2=new db2();
그러나 $objdb1->fn()
을 호출하려고 시도합니다. 그것은에서 검색합니다 $objdb2
&는 table1 doesnot 존재하는 것을 보여주고 있습니까?
내 첫 번째 파일 database.php
class database
{
private $hostname;
private $database;
private $username;
private $password;
private $dblinkid;
function __construct()
{
if($_SERVER['SERVER_NAME'] == 'localhost')
{
$this->hostname = "localhost";
$this->database = "aaaa";
$this->username = "xxx";
$this->password = "";
}
else
{
$this->hostname = "localhost";
$this->database = "xxx";
$this->username = "xxx";
$this->password = "xxx";
}
$this->dblinkid = $this->connect();
}
protected function connect()
{
$linkid = mysql_connect($this->hostname, $this->username, $this->password) or die("Could not Connect ".mysql_errno($linkid));
mysql_select_db($this->database, $linkid) or die("Could not select database ".mysql_errno($linkid)) ;
return $linkid;
}
마찬가지로 두 번째 파일
class database2
{
private $vhostname;
private $vdatabase;
private $vusername;
private $vpassword;
private $vdblinkid;
function __construct()
{
if($_SERVER['SERVER_NAME'] == 'localhost')
{
$this->vhostname = "xxx";
$this->vdatabase = "bbbb";
$this->vusername = "xxx";
$this->vpassword = "";
}
else
{
$this->vhostname = "localhost";
$this->vdatabase = "xxxx";
$this->vusername = "xxxx";
$this->vpassword = "xxxx";
}
$this->vdblinkid = $this->vconnect();
}
protected function vconnect()
{
$vlinkid = mysql_connect($this->vhostname, $this->vusername, $this->vpassword) or die("Could not Connect ".mysql_errno($vlinkid));
mysql_select_db($this->vdatabase, $vlinkid) or die("Could not select database ".mysql_errno($vlinkid)) ;
return $vlinkid;
}
세 번째 파일
$objdb1 = new database();
$objdb2 = new database2();
은 날이에 도와 드릴까요?
감사합니다,
판 카지
코드가 충분하지 않습니다. db1 et db2가 정의 된 방법을 보여주십시오. –
Mooore coooode. –
클래스의 장점은 동일한 기능을 공유하지만 속성이 다른 여러 인스턴스를 가질 수 있다는 것입니다. 귀하의 경우 하나의 클래스 만 사용하여 서로 다른 속성 (예 : 데이터베이스 연결 정보)을 가진 두 개의 인스턴스를 만들 수 있으므로 각 데이터베이스마다 하나씩 만들 수 있습니다. – Gumbo