바로가기 메뉴
본문내용 바로가기
메인메뉴 바로가기



Customer Center

Notice · Security Issue · Account Guide · Global Traffic Test

HOME > Customer Center > Tech Note

기술노트

php에서 oracle 관련 함수
2016.02.19

1. OCILogon

int OCILogon(string username, string passwd, string[ORACLE_SID])
OCILogon()은 리턴 값으로 대부분의 다른 OCI() 함수를 사용할 때, 필요한 커넥션을 반환한다.
파일을 여는 함수인 open()이나 fopn()의 리턴 값과 비슷하다고 생각하면 될 것이다.
첫번째: DB 아이디
두번째: 비밀번호
세번째:ORACLE_SID를 이용하여 어떤 데이터베이스에 연결할 것인지를 결정

2. OCIServerVersion
String OCISererVersion(int conn)
오파클 서버의 버전 정보를 스트링으로 변환한다.

3. OCILogOff
int OCILogOff(int connection)
오라클과의 접속을 끊는다. 인수로는 OCILogon()의 리턴 값(connection)을 받는다.

4. OCIParse
int OCIParse(int conn, string query)
첫 번째 인수: OCILogon()의 리턴 값인 connection
두 번째 인수: 오라클의 유효한 SQL 문을 넘겨 받아서 SQL구문이 유효하다면 true,
유효하지 않다면 false르 반환한다.

5. OCIExecute
int OCIExecute(int statement, int[mode])
OCIParse()의 리턴 값을 첫 번째 인수인 statement로 받아서 오라클에서 실행시킨다.
두번째 인수에는 실행 모드를 지정한다.
실행 모드를 지정하지 않으면 OCI_COMMIT_ON_SUCCESS로 이는 실행후에 바로 커미트(commit)된다.
만약 쿼리를 자동으로 커미트하지 않으려면 실행모드를 OCI_DEFAULT로 설정해야 한다.


6. OCIFetch
int OCIFetch(int statement)
OCILogon()을 DB와 연결이 되었고 유효한 쿼리인지는 OCIParse()로 판단한 후에
OCEExecute()로 해당 SQL 구문을 실행했다면 그 다음에 해야할 일은 패치(fetch)다.

인수로는 OCIParse()의 반환 값인 statement를 받는다. 실행문(SQL 쿼리)이 select일 경우
다음의 행(row)을 내부 버퍼에 넣는다. 예를 들어, select한 결과가 두개의 행이라면 두개의
행이 저장될 것이다.


7. OCINumCols
int OCINumCols(int statement)
OCIParse()의 반환 값인 statement값을 받아서 SQL 구문의 결과의 행 숫자를 반환한다.


8. OCIColumnName
string OCIColumnName(int statement, int column)
두 번째 인수인 column이 인덱스로서 명시하는 열(column)의 이름을 반환한다.
(인덱스는 배열과 다리 1부터 시작한다.)



9. OCIResult
int OCIResult(int statement, mixed column)
OCIFetch()를 호출한 이후에 내부 버퍼의 현재 행의 두 버째 이수가 인덱스로서
명시하는 값을 반환한다. 추상형 데이터(ROWID, LOB, FILE)를 제외하고 모두 스트링으로
반환한다.



10. OCIFreeStatement
int OCIFreeStatement(int statement)
인수 statement가 나타내는 SQL 구문에서 사용한 모든 자원(resource)를 해제시킨다.
OCIFreeStatement()가 자원을 성공적으로 해제했을 겨우 true 를 반환하고 그렇지 못했을
경우에는 false를 반환한다.

11. OCICommit
int OCICommit(int connetion)
OCILogon()의 반환 값인 connection에서 명시하는 오라클의 접속 이후에 실행된
SQL 구문들을 커미트(commit) 한다.

12. OCIRollback
int OCIRollback(int connection)
OCICommit() 과는 반대로 인수로 OCILogon의 반환 값인 connection에서 명시하는
접속에 관하여 마지막 커미트 이후의 모든 SQL구문들을 롤백(rollback)한다.

13. OCIRowCount
int OCIRowCount(int statement)
OCIRowCount()는 생성, 수정, 삭제, 삽입 등으로 영향을 받는 행의 개수를 반환한다.
OCIRowCount()의 인수인 statement가 select 문인 경우에는 fetch한 후에 사용해야
선택된 해의 숫자를 제대로 반환한다. 그렇지 않고 실행 후에 바로 OCIRowCount()를
호출하면 항상 0을 반환한다.


14. OCIFetchInfo
int OCIFetchInfo(int statement, array &result, int [mode])
OCIFetchInfo()는 statement가 명시한 SQL 실행 결과르 한 행(row)씩 두 번째 배열인
result에 저장한다. 쿼리 결과가 여러 행일 수 있으므로 보통 loop문과 같이 사용한다.
두 번째 인수는 반드시 주소를 나타내는 &와 함께 사용해야 하며 일차원 배열이 온다.
세 번째 인수느 패치되는 방식을 지정할 수 있다. 세 번째 인수에 아무 거소 지정하지
않을 경우에는 result 배열에 접근시 숫자 인덱스로 접근할 수 있게 한다.

*** mode 의 종류
OCI_ACCOC : 두 번째 인자인 배열(result)에 접근시 인덱스로서 대문자 열(column) 이름을 이용한다.
OCI_NUM : mode가 OCI_NUM이면 보통 배열에 접근하는 일반적인 방법처럼 두 번째 인자인 배열(result)에 접근시 인덱스로서 0부터 시작한다.
OCI_RETURN_NULLS : OCIFetchInfo()에 의해 패치한 행이 null을 포함한다면 배열의 원소에 null을 저장한다.
OCI_RETURN_LOBS : 패치한 행의 열의 값이 LOB를 포함하고 있을 때 이용한다.

15. OCIFetchStatement
int OCIFetchStatement(int statement, array &variable)
OCIFetchStatement()는 첫 번째 인수인 statement에서 명시한 SQL 구문의 실행 결과를 두 번째
인수인 이차원 배열에 한꺼번에 모두 저장한다. 패치된 행의 개수를 반환한다.

16. OCIError
int OCIError(int [stmt / conn])
마지막에 일어났던 에러를 반환한다. 아무런 에러도 일어나지 않았다면 false를 반환한다.
인수로 실행시켰던 SQL 쿼리가 온다.
이호스트데이터센터(http://www.ehostidc.co.kr)
첨부파일