>백엔드 개발 >PHP 튜토리얼 >Oracle의 PHP 클래스 인스턴스 운영

Oracle의 PHP 클래스 인스턴스 운영

WBOY
WBOY원래의
2016-08-08 09:33:431021검색

//[주의]: 무단수정을 금해 주세요
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
//
// [파일명] : 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.