<?
/*********************************************************
* 설명 : 범용적으로 db를 컨트롤 할수 있는 class
* 홈페이지 : http://www.mjava.net
* 만든사람 : 명랑폐인™ merong@hanmir.com (MSN id 동일)
* 저작권 : 없으니까 맘대로 쓰세요.
********************************************************/

/* common_config.php 파일은
{dbhost, dbuser, dbpass, dbname} 에 대한 정보를 가진 설정파일이다.
다른 파일명을 include할때는 해당파일에 네 변수값을 설정해 놓도록 한다.
*/
$include "common_config.php";
class Mysql_DB {
var $db; //db conncion
var $result; //result set
var $dbhost, $dbuser, $dbpass, $dbname;

/* Mysql_DB 의 생성자
- mysql_db() // config 파일의 변수값을 세팅
- mysql_db(db_name); //db_name 만 따로 설정하여 연결
- mysql_db(host, userid, userpass, db_name) // caller에서 직접 값설정
*/

function Mysql_DB () {
global $dbhost, $dbuser, $dbpass, $dbname;
$this->Mysql_DB($dbhost, $dbuser, $dbpass, $dbname);
}

function Mysql_DB($select_dbname) {
global $dbhost, $dbuser, $dbpass;
$this->Mysql_DB($dbhost, $dbuser, $dbpass, $select_dbname);
}

function Mysql_DB($dbhost, $dbuser, $dbpass, $dbname) {
$this->dbhost = $dbhost;
$this->dbuser = $dbuser;
$this->dbpass = $dbpass;
$this->dbname = $dbname;
$this->connect_db();
}

/*
connect_db() 와 select_db()에서 파라메타에 의한 호출이 없다.
생성자 이외에 방법으로 db를 변경하지 못하도록 한다.
*/

function connect_db() {
$this->db = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass);
if(is_resource($this->db) == false) {
die("$dbhost 에 연결할수 없습니다.");
}
$this->select_db();
}

function select_db() {
mysql_select_db($this->dbname, $this->db) or die("$dbname 을 선택할수 없습니다.");
}

/*
db에서 select 쿼리를 실행하는 함수
*/
function execute_query($query) {
$this->result = mysql_query($query, $this->db);
}

/*
db 에서 insert, delect, update 쿼리를 실행하는 함수
return : 적용된 rows 수, 에러가 있다면, -1를 반환
*/
function execute_update($query) {
$result = mysql_query($query, $this->db); //
if(is_resource($result)) return mysql_affected_rows($result);
return -1;
}

/*
select query된 result set을 반환한다.
꼭 필요한 경우 사용하고 보통은 next_fetch()를 사용하도록 한다.
*/
function get_result() {
return $this->result;
}

/*
execute_count() 함수는 select count(*) 등과 같은 단순 select 쿼리를
fetch 하여 결과값을 반환하는 함수이다.
return : 정상정인 값은 0 이상이며, select 된 row가 없으면, -1을 반환
*/
function execute_simple_query($query) {
$result = mysql_query($query, $this->db); //클래스 변수는 사용하지 않는다.
if(!is_resource($result)) return -1;
return mysql_result($result, 0, 0);
}

/*
select 쿼리된 개수를 반환한다.
return : 정상적 쿼리가 아니면, -1 을 return
*/
function get_num_rows() {
if(is_resource($this->result)) return mysql_num_rows($this->result);
return -1;
}

/*
$result를 하나 fetch 한다.
db간의 호환성을 높이기 위해 함수를 따로 만든다.
*/
function next_fetch() {
return mysql_fetch_assoc($this->result);
}

/*
db 와 연결된 자원을 반납한다.
*/
function destory() {
if(is_resource($this->result)) mysql_free_result($this->result);
mysql_close($this->db);
}

function close() {
$this->destroy();
}


?>

'php > Tip&Tech' 카테고리의 다른 글

php 함수목록  (0) 2013.06.02
.php 확장자를 .html로 쓰기위해  (1) 2011.08.12
php 접속하면 파일 다운로드 바로 가기  (0) 2011.08.01
PHP DBConnection 클래스  (0) 2011.07.28
PHP 페이징 기법  (0) 2011.07.27

+ Recent posts