개발-PHP

[함수] 다중(타)디비 컨넥 이용하기 (php클래스)

WEBKIKIS 2016. 3. 30. 17:42
반응형

[함수] 다중(타)디비 컨넥 이용하기 (php클래스)


<핵심포인트>
1. codeigniter는 기본적으로 지원됩니다.
http://codeigniter-kr.org/source/view/340




2. mysql_connect : TRUE인자 필수
동일한 인수로 mysql_connect()을 다시 호출하면, 새로운 link가 생성되는 것이 아니라, 이미 생성된 link 식별자 값을 돌려받게 된다. 단, new_link 로 mysql_connect()를 호출하면 동일한 인수로 mysql_connect()를 이미 호출하였다 하더라도 항상 새로운 접속을 생성한다. SQL 안전 모드에서는, 이 인수를 무시합니다.

3. mysql_query 시에 컨넥 필수
=> 빠트리면 최종적인 디비컨넥을 참조하게 됩니다.


<?
class mysql_driver {
 function mysql_driver($host,$name,$pass,$db)
 {
  $this->hostname = $host;
  $this->username = $name;
  $this->password = $pass;
  $this->database = $db;
 }
 function db_connect()
 {
  return @mysql_connect($this->hostname, $this->username, $this->password, TRUE);
 }
 function db_select()
 {
  return @mysql_select_db($this->database, $this->conn_id);
 }
 function initialize()
 {
  $this->conn_id = $this->db_connect();
  $this->db_select();
 }
 function query($sql)
 {
  // 이부분은 필요에 의해서 사용가능
  return $this->result=mysql_query($sql,$this->conn_id);
 }
}
function &DB($host,$name,$pass,$db)
{
 $driver = "mysql_driver";
 $DB =& instantiate_class(new $driver($host,$name,$pass,$db));
 $DB->initialize();
 return $DB;
}
function instantiate_class($class){
 return $class;
}
 
// 디비연결정보
$DB1 = DB('주소','아이디','패스워드','디비명');
$DB2 = DB('주소','아이디','패스워드','디비명');
// 순환출력 (db1, db2 교차테스트)
$result1=$DB1->query("select * from board");
while($data1=mysql_fetch_array($result1))
{
 $result2=$DB2->query("select * from board2");
 $data2 = mysql_fetch_array($result2);
 echo "$data1[title] => $data2[title]";
}
// 입력
$DB1->query("insert into board(id, pass)values('$id', '$pass')");
// 수정
$DB1->query("update board set  id='$id' where no='$no'");
// 삭제
$DB1->query("delete from board where no='$no' ");
// 조회
$result=$DB1->query("select * from board where no = '$no'");$data = mysql_fetch_array($result);
 
?>

반응형