PHP 에서 데이터베이스를 ORACLE 을 이용할때, OCI 사용 방법을 아래 예제를 통해 테스트 해 볼 수 있다.
<html>
<head><title>BMS관리</title>
<style type="text/css">
<!--
td{font-size:9pt}
//-->
</style>
</head>
<body>
<?php
$con = OCILogon( "webbms", "bms","FAMS2UNIX");
$tb = "v_bm_sp";
//전체 개수 뽑아오기
$query = "select count(*) from $tb";
$stmt = OCIParse($con, $query);
OCIDefineByName($stmt, "COUNT(*)", &$totalCount);
OCIExecute($stmt);
OCIFetch($stmt);
OCIFreeStatement($stmt);
$pagesize = 20;
$pageCount = ceil($totalCount/$pagesize);
if(empty($page)){
$page = 1;
}
//페이지별 페이징 쿼리를 위한 값세팅
if($page == "1"){
$startLimit = 1;
$endLimit = $pagesize + 1;
}else{
$startLimit = ($page-1)*$pagesize+1;
$endLimit = $page*$pagesize+1;
}
//리스트 구현
//$sql = "select 빌딩코드, 동코드, 층코드, 등기호실, 호실, 상호코드, 상호, 호수, 층, 대표자명, 대표전화, 매장분류, 주요품목 from $tb order by 층코드 asc, 호수 asc";
$sql = "select rn, 빌딩코드, 동코드, 층코드, 등기호실, 호실, 상호코드, 상호, 호수, 층, 대표자명, 대표전화, 매장분류, 주요품목 from (select rownum rn, B.* from (select 빌딩코드, 동코드, 층코드, 등기호실, 호실, 상호코드, 상호, 호수, 층, 대표자명, 대표전화, 매장분류, 주요품목 from $tb order by 층코드 asc, 호수 asc) B where rownum < $endLimit) where rn >= $startLimit";
echo $sql;
$stmt = OCIParse($con, $sql);
OCIDefineByName($stmt, "rn", &$num);
OCIDefineByName($stmt, "빌딩코드", &$Bcode);
OCIDefineByName($stmt, "동코드", &$Dcode);
OCIDefineByName($stmt, "층코드", &$Fcode);
OCIDefineByName($stmt, "등기호실", &$Room1);
OCIDefineByName($stmt, "호실", &$Room2);
OCIDefineByName($stmt, "상호코드", &$Ccode);
OCIDefineByName($stmt, "상호", &$Company);
OCIDefineByName($stmt, "호수", &$RoomNumber);
OCIDefineByName($stmt, "층", &$Floor);
OCIDefineByName($stmt, "대표자명", &$Owner);
OCIDefineByName($stmt, "대표전화", &$Phone);
OCIDefineByName($stmt, "매장분류", &$Type);
OCIDefineByName($stmt, "주요품목", &$Goods);
OCIExecute($stmt);
?>
<table>
<tr bgcolor="yellow" align="center" style="font-weight:bold">
<td>번호</td>
<!--<td>빌딩코드</td>
<td>동코드</td>
<td>층코드</td>
<td>등기호실</td>
<td>호실</td>//-->
<td>상호코드</td>
<td>상호</td>
<td>호수</td>
<td>층</td>
<td>대표자명</td>
<td>대표전화</td>
<td>매장분류</td>
<td>주요품목</td>
</tr>
<?
$num = $totalCount - ($pagesize * ($page - 1));
while(OCIFetch($stmt)){
?>
<tr bgcolor="#EFEFEF">
<td><?=$num?></td>
<!--<td><?=$Bcode?></td>
<td><?=$Dcode?></td>
<td><?=$Fcode?></td>
<td><?=$Room1?></td>
<td><?=$Room2?></td>-->
<td><?=$Ccode?></td>
<td><?=$Company?></td>
<td><?=$RoomNumber?></td>
<td><?=$Floor?></td>
<td><?=$Owner?></td>
<td><?=$Phone?></td>
<td><?=$Type?></td>
<td><?=$Goods?></td>
</tr>
<?
$num--;
$i++;
}
OCIFreeStatement($stmt);
OCILogoff($con);
?>
<tr>
<td colspan="9"><? include "../include/page_shop.php"; ?></td>
</tr>
</table>
</body>
</html>