"PHP에서 오라클 쿼리"의 두 판 사이의 차이

25번째 줄: 25번째 줄:
</source>
</source>


;셋째줄 예시
;4행 기입예시
<source lang='php'>
<source lang='php'>
   $conn = oci_connect('testuser', 'P@ssw0rd', '111.222.33.44/MYSVC', 'UTF8');
   $conn = oci_connect('testuser', 'P@ssw0rd', '111.222.33.44/MYSVC', 'UTF8');

2012년 9월 5일 (수) 17:05 판

PHP에서 오라클 접속
PHP에서 오라클 쿼리

1 소스 코드

웹서버에 아래 내용으로 test_ora.php 라는 파일을 생성하자.

<?php
function xmp_print_r($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; }
function oci_query($query) {
  $conn = oci_connect('사용자명', '비밀번호', 'DB서버주소/서비스명', 'UTF8');
  if(!$conn) die('cannot connect: '.oci_error());
  $stid = oci_parse($conn, $query);
  if(!$stid) die('oci parse error: ' . oci_error($conn));
  if(oci_execute($stid) === false) die("oci query error [ $query ] message : ".oci_error($stid));
  oci_fetch_all($stid, $arr, null, null, OCI_FETCHSTATEMENT_BY_ROW);
  oci_close($conn);
  return $arr;
}
$q = "SELECT 'A1' COL1, 'A2' COL2 FROM DUAL";
$q .= " UNION ALL "; 
$q .= "SELECT 'B1' COL1, 'B2' COL2 FROM DUAL";
$arr = oci_query($q);
xmp_print_r($arr);
?>
4행 기입예시
  $conn = oci_connect('testuser', 'P@ssw0rd', '111.222.33.44/MYSVC', 'UTF8');

2 브라우저 확인 (실패)

브라우저로 test_ora.php에 접속해보자.

Warning: oci_connect(): ORA-24408: could not generate unique server group name in /var/www/html/test_ora.php on line 4 cannot connect: Array
→ 웹서버와 DB서버의 통신에 문제가 있다.
→ 웹서버에 대해 고유한 서버그룹명이 필요.

3 hosts 파일 설정

명령어
echo -e "자신의아이피\t호스트명" >> /etc/hosts
→ 웹서버 자신의 아이피와 호스트명을 기입한다.[1]
실행예시
[root@jmnote ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@jmnote ~]# echo -e "111.222.33.44\toracledb01" >> /etc/hosts
[root@jmnote ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
111.222.33.44	jmnote

4 결과

브라우저에서 test_ora.php에 접속해보자.

Array
(
    [0] => Array
        (
            [COL1] => A1
            [COL2] => A2
        )

    [1] => Array
        (
            [COL1] => B1
            [COL2] => B2
        )

)

5 같이 보기

6 주석

  1. 호스트명이 실제 웹서버의 호스트명과 일치하지 않아도 된다. DB서버가 웹서버에 대해 적절한 이름을 생성하는 힌트로 사용된다.

7 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}