PHP 忒聊
綴豖
ヶ輛
OCINewCursor
(PHP 3 = 3.0.8, PHP 4)
Description
OCINewCursor() allocates a new statement handle on the specified connection.
瞰赽 1. Using a REF CURSOR from a stored procedure
?php // suppose your stored procedure info.output returns a ref cursor in :data $conn = OCILogon("scott","tiger"); $curs = OCINewCursor($conn); $stmt = OCIParse($conn,"begin info.output(:data); end;"); ocibindbyname($stmt,"data", $curs,-1,OCI_B_CURSOR); ociexecute($stmt); ociexecute($curs); while (OCIFetchInto($curs, $data)) {var_dump($data);} OCIFreeStatement($stmt); OCIFreeCursor($curs); OCILogoff($conn);?
瞰赽 2. Using a REF CURSOR in a select statement
?php print "HTML BODY "; $conn = OCILogon("scott","tiger"); $count_cursor = "CURSOR(select count(empno) num_emps from emp". "where emp.deptno = dept.deptno) as EMPCNT from dept"; $stmt = OCIParse($conn,"select deptno,dname,$count_cursor"); ociexecute($stmt); print "TABLE BORDER=\"1\" "; print" TR "; print "TH DEPT NAME /TH "; print" TH DEPT # /TH "; print "TH # EMPLOYEES /TH "; print" /TR "; while (OCIFetchInto($stmt, $data,OCI_ASSOC)) {print "TR "; $dname = $data["DNAME"]; $deptno = $data["DEPTNO"]; print" TD $dname /TD "; print "TD $deptno /TD "; ociexecute($data["EMPCNT"]); while (OCIFetchInto($data["EMPCNT"], $subdata,OCI_ASSOC)) {$num_emps = $subdata["NUM_EMPS"]; print" TD $num_emps /TD ";} print "/TR ";} print" /TABLE "; print "/BODY /HTML "; OCIFreeStatement($stmt); OCILogoff($conn);?
綴豖
れ萸
ヶ輛
OCINewCollection
奻珨撰
OCINewDescriptor