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

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(사용자 2명의 중간 판 9개는 보이지 않습니다)
8번째 줄: 8번째 줄:
==소스 코드==
==소스 코드==
웹서버에 아래 내용으로 test_ora.php 라는 파일을 생성하자.
웹서버에 아래 내용으로 test_ora.php 라는 파일을 생성하자.
<source lang='php'>
<syntaxhighlight lang='php'>
<?php
<?php
function xmp_print_r($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; }
function xmp_print_r($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; }
18번째 줄: 18번째 줄:
oci_close($conn);
oci_close($conn);
xmp_print_r($arr);
xmp_print_r($arr);
?>
</syntaxhighlight>
</source>


;3행 기입예시
;3행 기입예시
<source lang='php'>
<syntaxhighlight 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');
</source>
</syntaxhighlight>


==브라우저 확인 (실패)==
==브라우저 확인 (실패)==
브라우저로 test_ora.php에 접속해보자.
브라우저로 test_ora.php에 접속해보자.
<source lang='text'>
<syntaxhighlight lang='text'>
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
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
</source>
</syntaxhighlight>
:→ 웹서버와 DB서버의 통신에 문제가 있다.
:→ 웹서버와 DB서버의 통신에 문제가 있다.
:→ 웹서버에 대해 고유한 서버그룹명이 필요.
:→ 웹서버의 오라클 연동 모듈이 자신(웹서버)를 호출할 때 호스트명을 이용하는 모양이다.


==hosts 파일 설정==
==hosts 파일 설정==
{{참고|ORA-24408}}
;명령어
;명령어
<source lang='bash'>
<syntaxhighlight lang='bash'>
echo -e "자신의아이피\t호스트명" >> /etc/hosts
echo -e "자신의아이피\t호스트명" >> /etc/hosts
</source>
</syntaxhighlight>
:→ 웹서버 자신의 아이피와 호스트명을 기입한다.<ref>호스트명이 실제 웹서버의 호스트명과 일치하지 않아도 된다. DB서버가 웹서버에 대해 적절한 이름을 생성하는 힌트로 사용된다.</ref>
:→ 웹서버 자신의 아이피와 호스트명을 기입한다.


;실행예시
;실행예시
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# cat /etc/hosts
[root@zetawiki ~]# cat /etc/hosts
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@jmnote ~]# echo -e "111.222.33.44\tjmnote" >> /etc/hosts
[root@zetawiki ~]# echo -e "111.222.33.44\tjmnote" >> /etc/hosts
[root@jmnote ~]# cat /etc/hosts
[root@zetawiki ~]# cat /etc/hosts
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
111.222.33.44 jmnote
111.222.33.44 jmnote
</source>
</syntaxhighlight>


==브라우저 확인 (성공)==
==브라우저 확인 (성공)==
브라우저에서 test_ora.php에 접속해보자.
브라우저에서 test_ora.php에 접속해보자.
<source lang='text'>
<syntaxhighlight lang='text'>
Array
Array
(
(
63번째 줄: 64번째 줄:
         )
         )
)
)
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==
70번째 줄: 71번째 줄:
*[[/etc/hosts]]
*[[/etc/hosts]]


==주석==
==참고==
<references/>
 
==참고 자료==
*http://onmay.com/46
*http://onmay.com/46
*http://eqcode.com/wiki/Now
*http://eqcode.com/wiki/Now

2020년 11월 2일 (월) 02:35 기준 최신판

PHP에서 오라클 접속 테스트
PHP에서 오라클 쿼리 테스트
ORA-24408: could not generate unique server group name

1 사전 작업[ | ]

2 소스 코드[ | ]

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

<?php
function xmp_print_r($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; }
$conn = oci_connect('사용자명', '비밀번호', 'DB서버주소/서비스명', 'UTF8');
$query = "SELECT to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') AS Now FROM dual";
$stid = oci_parse($conn, $query) or 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);
xmp_print_r($arr);
3행 기입예시
$conn = oci_connect('testuser', 'P@ssw0rd', '111.222.33.44/MYSVC', 'UTF8');

3 브라우저 확인 (실패)[ | ]

브라우저로 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서버의 통신에 문제가 있다.
→ 웹서버의 오라클 연동 모듈이 자신(웹서버)를 호출할 때 호스트명을 이용하는 모양이다.

4 hosts 파일 설정[ | ]

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

5 브라우저 확인 (성공)[ | ]

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

Array
(
    [0] => Array
        (
            [NOW] => 2012-09-06 18:12:19
        )
)

6 같이 보기[ | ]

7 참고[ | ]

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