|
<? function printoraerr($in_cur, $conn) { // 检查Oracle是否出错
// 如果存在错误则显示
// 当指针被激活时每次请求Oracle后调用该函数
// If it encountered an error, we exit immediately
if(ora_errorcode($in_cur)) { echo "Oracle code - ".ora_error($in_cur)."<br>n"; ora_logoff($conn); exit; } return; }
function exequery($w_qry,$conn) { $cursor=ora_open($conn); printoraerr($cursor,$conn); ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn); ora_exec($cursor); printoraerr($cursor,$conn); $numrows=0; $w_numcols=ora_numcols($cursor); // 显示头部
echo " <TABLE WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="2"> <TR>n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; echo "t<TH VALIGN=TOP ALIGN=$align>".ora_columnname($cursor,$i)."</TH>n"; } echo "</TR>n"; while(ora_fetch($cursor)) { echo "<TR>n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; if(ora_columntype($cursor,$i)=="LONG") echo "<TD VALIGN=TOP ALIGN=$align><PRE>". ora_getcolumn($cursor,$i)."</PRE></TD>n"; else echo "<TD VALIGN=TOP ALIGN=$align>".ora_getcolumn($cursor,$i)."</TD>n"; printoraerr($cursor,$conn); } $numrows++; echo "</TR>n"; } if ($numrows==0) echo "<TR><TD COLSPAN="$w_numcols"><B>Query returned no records </B></TD></TR>n"; else { echo "<TR>n"; echo "<TH COLSPAN="".($w_numcols-1)."" ALIGN=RIGHT>Count</TH>n"; echo "<TH ALIGN=RIGHT>$numrows</TH>n"; echo "</TR>n"; } echo "</TABLE>n"; ora_close($cursor); return; }
// 主程序
if(!($conn=ora_logon("user@SID","password"))) { echo "Error: Cannot connect to databasen"; exit; } $qry="SELECT deptno "Dept" ,empno "Emp" ,empnm "Name" ,salary "Salary" FROM employee ORDER BY 1,2"; exequery($qry); ora_logoff($conn); ?>
|