//[주의]: 무단수정을 금해 주세요
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
//
// [파일명] : c_ora_db.inc
// [함수]: Oracle 공용 함수 클래스
//
// [최종 수정 날짜]: 2001/05/11[cxx]
// [변수 정의 규칙]: 'C_' = 문자형, 'I_' = 정수형, 'N_' = 숫자형, 'L_' = 불리언형, 'A_' = 배열형
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// ※db_logon() 데이터베이스 연결 열기
// ※db_query()
// ※db_change() 데이터베이스 변경(삽입, 삭제, 업데이트) 공통 함수
// ※db_insert() >
// ※db_delete() 삭제를 통해 db_change()를 직접 호출
// ※ db_update() 업데이트, db_change() 직접 호출
// ※db_commit()
// ※db_rollback() 트랜잭션 롤백
// ※db_logoff()
//------------------------------------------------ ----------------
클래스 c_ora_db
{
//------------------------------------------------ ----------------
// 변수 정의
//------------------------------------------------ ----------------
~ = ""
var $C_passwd = ""; //데이터베이스 비밀번호
var $C_db = ""; var $C_db //데이터베이스 이름
var $I_linkID = 0;
var $I_stmtID = 0; var $I_stmtID
var $color =""; var $color =""; //전체 색상
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수 이름: db_logon()
// 기능: 데이터베이스 연결 열기
// 매개변수: 없음
// 반환값: 연결 핸들(정수)
// 참고: 없음
//------------------------------------------------ ----------------
함수 db_logon()
$this->I_linkID = @OCILogon($this->C_user,$this->C_passwd,$this->C_db)
If ($this->I_linkID == 0){AlertExit('데이터베이스 링크에 실패했습니다. DBA에게 문의하세요!');}
~ 반환 return $this->I_linkID;
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수 이름: db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
// 기능:
선택
// 매개변수: $C_sql sql문
// $ a_define을 사용하여 필드를 바인딩합니다. 배열 유형
// $ i_start -1 레코드와 쿼리의 모든 레코드를 시작합니다
// $ i_END 기록 종료
// 반환 값: 2차원 배열($A_rs)
// 참고: 해당 필드의 값은 숫자 0,1,2....를 통해 액세스할 수 있으며, 필드 이름을 쿼리하여 해당 필드의 값에 액세스할 수도 있습니다.
// 첫 번째 레코드 이름 필드에 접근할 수 있는 경우
// $I_start, $I_end는 페이징에 사용되는 매개변수입니다.
//------------------------------------------------ ----------------
함수 db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
If (!$C_sql){AlertExit("매개변수가 불완전합니다!");}//매개변수 확인
//연결 감지
If ($this->I_linkID == 0){AlertExit('데이터베이스 링크에 실패했습니다. DBA에게 문의하세요!');}
//형식 감지
$this -> I_stmtID = OCiparse($this -> I_linkID,$C_sql);
If (!$this -> I_stmtID){AlertExit('SQL 형식 오류입니다! 프로그래머에게 문의하세요');}
//바운드 필드가 지정되지 않은 경우 SQL 문에서 가져옵니다.
If($A_define=="")
{
$A_Cur = 폭발("select",$C_sql)
$A_Cur = 폭발("from",$A_Cur[1])
$A_define = 폭발(",",$A_Cur[0])
}
//데이터베이스 테이블 필드 바인딩
If(gettype($A_define) == "array") //쿼리 열이 배열입니다
for($i=0;$i
$A_define_up[$i] = Trim(strtoupper($A_define[$i]));
~
for($i=0;$i
OCIDefineByName($this -> I_stmtID,"$A_define_up[$i]", >
}
Elseif (trim ($ a_define) & lt; & gt; "") // 쿼리 목록은 하나만 있습니다
$A_define_up = Trim(strtoupper($A_define))
OCIDefineByName($this -> I_stmtID,"$A_define_up",&$$A_define
}
//바인딩된 SQL 문 실행
If(!OCIExecute($this -> I_stmtID))
echo "
실행 오류:SQL 오류:
$C_sql
거짓 반환
}
>
//기록 가져오기
동안 (OCIFetchInto($this -> I_stmtID,&$cur,OCI_ASSOC))
//찾은 모든 레코드 가져오기
if ($I_start == -1)
If (gettype($A_define) == "array") //쿼리 열이 배열입니다
~
($i=0;$i
~
If ($cur[$A_define_up[$i]] <> $$A_define[$i])
~
$$A_define[$i] = $cur[$A_define_up[$i]];
}
$A_rs[$lower][$i] = $$A_define[$i]; ~ $A_rs[$lower][$i] = $$A_define[$i];
$A_rs[$lower][$A_define[$i]] = $$A_define[$i]; ~ $A_rs[$lower][$A_define[$i]] = $$A_define[$i];
$A_rs[$lower][$A_define_up[$i]] = $$A_define[$i];
~
~
Elseif (trim ($ a_define) & lt; & gt; "") // 쿼리 목록은 하나만 있습니다
~
~
If ($cur[$A_define_up] <> $$A_define)
~
~
~
> $A_rs[$lower][0] = $$A_define;
$ A_RS [$ low] [$ a_define] = $ $ a_define; // 접근하려면 소문자를 사용하세요
$A_rs[$lower][$A_define_up] = $$A_define;
~
$lower++; ~ $lower++;
//지정된 레코드 검색(페이징에 사용)
If ($I_start <> -1)
If ($cnt >= $I_start)
~
$cnt++
If ($I_end - $I_start <> 0)
~ $I_end--;
if (gettype($A_define) == "배열")
{
for($i=0;$i
{
if ($cur[$A_define_up[$i]] <> $$A_define[$i])
{
$$A_define[$i] = $cur[$A_define_up[$i]];
}
$A_rs[$lower][$i] = $$A_define[$i]; //용자문자
$A_rs[$lower][$A_define[$i]] = $$A_define[$i]; //사용 小些访问
$A_rs[$lower][$A_define_up[$i]] = $$A_define[$i]; //용대写访问
}
}elseif(trim($A_define) <> "")
{
if ($cur[$A_define_up] <> $$A_define)
{
$$A_define = $cur[$A_define_up];
}
$A_rs[$lower][0] = $$A_define; //용자문자
~ $A_rs[$lower][$A_define] = $$A_define;
~ $A_rs[$lower][$A_define_up] = $$A_define을 통해;
~ }
$lower++
}또 다른
~
BREAK; // $ i_end-$ i_start = 0이면 레코드를 나타내고 WHILE 루프에서 빠져나옵니다.
~
~ ~
~
~ $cnt++;
~
//종료
//핸들을 해제하고 쿼리 데이터(2차원 배열)를 반환합니다.
OCIFreestatement($this -> I_stmtID)
$A_rs 반환;
} //함수 종료
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수명 : db_change($C_sql,$A_bind)
// 기능: DB 변경
// 매개변수: $C_sql sql문
// $ a_Bind는 필드를 바인딩합니다. 배열 유형
// 반환 값: 부울 값
// //
//------------------------------------------------ ----------------
함수 db_change($C_sql,$A_bind="")
{
If (!$C_sql){AlertExit("매개변수가 불완전합니다!");}//매개변수 확인
//연결 감지
if($this -> I_linkID==""){ AlertExit("데이터베이스가 사용 중입니다. 나중에 다시 시도해 주세요!");}
//형식 감지
$this -> I_stmtID = OCIParse($this -> I_linkID,$C_sql);
If (!$this -> I_stmtID){AlertExit('SQL 형식 오류입니다! 프로그래머에게 문의하세요');}
//바인딩
If(gettype($A_bind) == "배열")
{
for($i=0;$i
글로벌 $$A_bind[$i]
$o a_bind [$ i] = Stripslashes ($ $ a_bind [$ i]) // 뒤쪽 경사선 제거 Yuan
$ $ A_bind [$ i] = 스트립레이스 ("" & lt;? "," & Lt;? ", $ $ A_bind [$ i]); // pHP 기호 필터링
for($i=0;$i
OCIBindByName($this -> I_stmtID, ":$A_bind[$i]", &$$A_bind[$i], -1) //바인딩
}
elseif(trim($A_bind) <> "")
{
글로벌 $$A_bind
$$A_bind = StripSlashes($$A_bind)
$ $ A_bind = strplace ("" & lt;? "," & Lt;? ", $ $ A_bind); // pHP 표시 필터링
OCIBindByName($this -> I_stmtID, ":$arrBind", &$$A_bind, -1);
}
//실행하여 성공여부 확인
If(!OCIExecute($this -> I_stmtID,OCI_DEFAULT))
{
echo "실행 오류:SQL 오류:$C_sql
거짓 반환
}
/*//영향을 받은 행 수를 반환합니다
글로벌 $I_changenum
$I_changenum = OCINumrows($this -> I_stmtID);*/
//핸들을 놓고 값을 반환합니다.
OCIFreeStatement($this -> I_stmtID)
true를 반환합니다.
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수명 : db_delete($C_sql)
// 함수: 삭제
// 매개변수: C_sql sql문
// 반환 값: 부울 값
// 참고: 이 함수는 직관적인 사용을 위한 것이며 기본적으로 db_change()를 호출합니다.
//------------------------------------------------ ----------------
함수 db_delete($C_sql)
{
return $this ->
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수 이름 : db_insert($C_sql,A_bind)
// 함수: 삽입
// 매개변수: C_sql sql문
// A_bind 바인드
// 반환 값: 부울 값
// 참고: 이 함수는 직관적인 사용을 위한 것이며 기본적으로 db_change()를 호출합니다.
//------------------------------------------------ ----------------
함수 db_insert($C_sql,$A_bind="")
{
return $this ->
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수 이름: db_update($C_sql,A_bind)
// 함수: 업데이트
// 매개변수: C_sql sql문
// A_bind 바인드
// 반환 값: 부울 값
// 참고: 이 함수는 직관적인 사용을 위한 것이며 기본적으로 db_change()를 호출합니다.
//------------------------------------------------ ----------------
함수 db_update($C_sql,$A_bind="")
{
return $this ->
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수 이름: db_commit()
// 기능: 거래 제출
// 매개변수: 없음
// 반환 값: 부울 값
// 참고: 없음
//------------------------------------------------ -------------------
함수 db_commit()
{
반환(Ocicommit($ this- & gt; i_linkid)
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수 이름: db_rollback()
// 기능: 트랜잭션 롤백
// 매개변수: 없음
// 반환 값: 부울 값
// 참고: 없음
//------------------------------------------------ -------------------
함수 db_rollback()
{
Return(Ocirollback($ this-& gt; I_linkid)
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
// 함수 이름: db_logoff()
// 기능: 데이터베이스 연결 끊기
// 매개변수: 없음
// 반환 값: 부울 값
// 참고: 없음
//------------------------------------------------ -------------------
함수 db_logoff()
{
return (OCILogoff($this->I_linkID)
}
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
}
?>
위 내용은 Oracle 운영을 위한 PHP 클래스 예제를 내용적으로 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.