|
oci_new_cursor (PHP 5) oci_new_cursor -- 配置並返回一個新的游標(語句識別碼) 說明resource oci_new_cursor ( resource connection )
oci_new_cursor() 在特殊的連線上配置一個新的語句識別碼。
例子 1. 在 Oracle 的存儲過程中使用 REF CURSOR
<?php // suppose your stored procedure info.output returns a ref cursor in :data
$conn = oci_connect("scott", "tiger"); $curs = oci_new_cursor($conn); $stmt = oci_parse($conn, "begin info.output(:data); end;");
oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR); oci_execute($stmt); oci_execute($curs);
while ($data = oci_fetch_row($curs)) { var_dump($data); }
oci_free_statement($stmt); oci_free_statement($curs); oci_close($conn); ?>
|
|
例子 2. 在 Oracle 的 select 語句中使用 REF CURSOR
<?php echo "<html><body>"; $conn = oci_connect("scott", "tiger"); $count_cursor = "CURSOR(select count(empno) num_emps from emp " . "where emp.deptno = dept.deptno) as EMPCNT from dept"; $stmt = oci_parse($conn, "select deptno,dname,$count_cursor");
oci_execute($stmt); echo "<table border=\"1\">"; echo "<tr>"; echo "<th>DEPT NAME</th>"; echo "<th>DEPT #</th>"; echo "<th># EMPLOYEES</th>"; echo "</tr>";
while ($data = oci_fetch_assoc($stmt)) { echo "<tr>"; $dname = $data["DNAME"]; $deptno = $data["DEPTNO"]; echo "<td>$dname</td>"; echo "<td>$deptno</td>"; oci_execute($data["EMPCNT"]); while ($subdata = oci_fetch_assoc($data["EMPCNT"])) { $num_emps = $subdata["NUM_EMPS"]; echo "<td>$num_emps</td>"; } echo "</tr>"; } echo "</table>"; echo "</body></html>"; oci_free_statement($stmt); oci_close($conn); ?>
|
|
oci_new_cursor() 若果出錯返回 FALSE。
注:
在 PHP 5.0.0 之前的版本必須使用 ocinewcursor()
替代本函數。該函數名仍然可用,為向下相容作為
oci_new_cursor() 的別名。不過其已被廢棄,不推薦使用。
| |