PHP를 사용하여 Oracle 데이터베이스 운영
11. 데이터베이스 연결
이전 섹션에서는 PHP 및 MySQL 데이터베이스에 대한 몇 가지 기본 운영 지식을 소개했습니다. 또한 인터넷에는 PHP 및 MySQL에 대한 튜토리얼이 가장 많이 있습니다. MySQL은 무료이므로 많은 사람들의 관심을 끌 수 있습니다. 광범위한 응용 프로그램으로 인해 여기에서는 MySQL 사용에 대해 자세히 설명하고 싶지 않습니다. Oracle은 엔터프라이즈 애플리케이션에서 널리 사용되므로 Oracle을 사용하여 PHP와 데이터베이스 간의 연결을 추가로 소개하겠습니다. Oracle 데이터베이스의 설계 원칙은 논의 범위를 벗어나므로 언급하지 않겠습니다.
PHP는 Oracle에 연결하기 위한 두 가지 함수 세트, 즉 ORA_ 및 OCI 함수를 제공합니다. ORA_ 함수는 약간 오래되었습니다. OCI 기능 업데이트로 더 좋아졌다고 하네요. 둘의 사용 구문은 거의 동일합니다. 앞서 언급했듯이 PHP 설치 옵션은 두 가지 모두를 지원해야 합니다.
Microsoft Windows 플랫폼에 PHP3를 지원하는 Apache 서버를 설치하는 방법과 Oracle 데이터베이스에 대한 자세한 내용을 보려면 다음 URL을 확인하세요: www.csoft.net/~vsbabu/articles/oraphp.html.
11.1 연결
if ($c>{
echo "SUCCESS ! 데이터베이스n에 연결되었습니다";
}
else >{
echo "실패 :-( 데이터베이스n에 연결할 수 없습니다.";
}
Ora_Logoff($conn);
phpinfo();
? >
위 코드는 TNSNAME에 의해 정의된 Oracle 데이터베이스 이름, 사용자 이름 및 비밀번호(tnsnames.ora 파일에 지정됨)를 사용하여 데이터베이스에 연결합니다. 성공적인 연결을 기반으로 ora_logon 함수는 0이 아닌 연결을 반환합니다. ID를 $conn 변수에 저장합니다.
11.2 Query
데이터베이스에 대한 연결이 준비되었다고 가정하고 실제로 데이터베이스에 쿼리를 적용해 보겠습니다.다음 코드는 연결 및 쿼리의 일반적인 예를 보여줍니다.
/*
* 데이터베이스에 연결하고 쿼리를 실행합니다.
*/
function printoraerr($in_cur)
{
// Oracle에 오류가 있는지 확인
// 오류가 있으면 표시
// 포인터가 활성화되면 각 Oracle 요청 후에 이 함수를 호출합니다
if( ora_errorcode($in_cur))
echo "Oracle 코드 - ".ora_error($in_cur)."n"
return
}
/**메인 프로그램*/
if (!($c>{
echo "데이터베이스 연결 실패";
exit;
}
echo "연결로 연결됨 - $conn
n";
echo "커서 열기 ...
n";
$cursor=ora_open($conn); printoraerr($cursor);
echo "커서 열기 - $cursor< ;br>n";
$qry="select user,sysdate from Dual";
echo "쿼리 분석 중 $qry ;br>n";
ora_parse($cursor,$qry,0); printoraerr($cursor);
echo "쿼리 구문 분석된
n";
echo "커서 실행 중...
n";
ora_exec($cursor); printoraerr($cursor);
echo "실행된 커서
n";
echo "커서를 가져오는 중...
n ";
while( ora_fetch($cursor))
{
$user=ora_getcolumn($cursor,0); printoraerr($cursor);
$sysdate=ora_getcolumn($cursor,1) ; printoraerr($cursor);
echo " row = $user, $sysdate
n"
}
echo "모든 기록을 가져왔습니다.
n";
echo "커서 닫는 중 ...
n";
ora_close($cursor);
echo "커서 닫는 중
n";
echo "다음에서 로그오프하는 중입니다. oracle...
ora_logoff($conn);
echo "oracle
n에서 로그오프되었습니다";
?>
(번역자 주: The 위의 코드 부분에는 주석이 없습니다. 독자들은 PHP 매뉴얼의 Oracle 데이터베이스 함수 섹션을 참조하십시오.
11.3 결과 표시
다음 코드는 데이터베이스를 쿼리하고 결과를 출력하는 방법을 보여줍니다.
🎜>function printoraerr($in_cur, $conn)
{
// 오라클에 오류가 있는지 확인
// 오류가 있으면 표시
// 포인터가 활성화되면, 각 Oracle 요청 후에 이 함수를 호출합니다.
// 오류가 발생하면 즉시 종료합니다.
if(ora_errorcode($in_cur))
{
echo "Oracle 코드 - ".ora_error($in_cur )."
n";
exit;
}
함수 exequery($w_qry,$conn) 🎜>{
$cursor=ora_open($conn); printoraerr( $cursor,$conn)
ora_parse($cursor,$w_qry,0)
ora_exec($cursor); printoraerr($cursor,$conn);
$numrows=0;
$w_numcols=ora_numcols($cursor);
// 헤더 표시
n"; n"; n";
($i=0;$i<$ w_numcols;$i )
{
$align=( ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"
echo "t".ora_columnname($cursor,$i). " n";
}
echo "
while(ora_fetch($ 커서))
{
echo " n" n";
for ($i=0;$i<$w_numcols;$i )
{
$align=(ora_columntype ($cursor,$i)=="NUMBER")?"RIGHT ":"LEFT";
if(ora_columntype($cursor,$i)=="LONG")
echo " n"; ". <br> ora_getcolumn($cursor,$i)."
else
echo "< TD VALIGN=TOP ALIGN=$align>".ora_getcolumn($cursor, $i)."n";
printoraerr($cursor,$conn);
}
$numrows ;
echo "
}
if ($numrows==0)
echo " n"; 쿼리가 레코드를 반환하지 않았습니다
< ;/TD>
else
{
echo "n"; n";
echo "카운트 n"
echo "$numrows TH>n";
echo "
}
echo "
ora_close($cursor);
return;
}
//
if(!( $c>{
echo "오류: 데이터베이스에 연결할 수 없습니다.";
exit;
}
$qry="SELECT
deptno "Dept"
,empno "Emp"
,empnm "Name"
,salary "Salary"
FROM
employee
ORDER BY 1,2";
exequery($qry);
ora_logoff($conn);
?>
(번역자 주: 위 코드 조각에는 주석이 없습니다. PHP 수동 Oracle 데이터베이스 기능 부분)
11.4 HTTP 기반 Oracle 로그인
Oracle 로그인을 확인하려면 PHP 페이지 코드 앞에 다음 코드를 추가합니다. $SID를 올바르게 설정해야 합니다.
if(!isset($PHP_AUTH_USER))
{
Header("WWW-authenticate: basic realm="$SID"")
Header("HTTP/ 1.0 401 Unauthorized");
$title="Login Instructions";
echo "
>exit
사이트에 입장할 권한이 없습니다.
}
else
{
if (!($c>{
Header("WWW-authenticate: basic realm="$SID"");
헤더 ("HTTP/1.0 401 Unauthorized");
$title="Login Instructions";
echo "
";
사이트에 입장할 권한이 없습니다.
종료;
}
}
?>
위에는 타오바오 초보자 시작하기 내용과 PHP 초보자 시작하기(12)를 소개했는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.