«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Tags
more
Archives
Today
240
Total
1,919,938
관리 메뉴

올해는 머신러닝이다.

php db connection class 범용 본문

php/Tip&Tech

php db connection class 범용

리엑티브한 행복한 수지아빠 2011. 9. 27. 16:41

<?
/*********************************************************
* 설명 : 범용적으로 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 db connection class 범용  (0) 2011.09.27
.php 확장자를 .html로 쓰기위해  (1) 2011.08.12
php 접속하면 파일 다운로드 바로 가기  (0) 2011.08.01
PHP DBConnection 클래스  (0) 2011.07.28
PHP 페이징 기법  (0) 2011.07.27
0 Comments
댓글쓰기 폼