函数名:oci_execute()
适用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8 (注意:此函数在PHP 8.1.0版本中被废弃)
用法:oci_execute()函数用于执行一个预编译的SQL语句或者游标。
语法:bool oci_execute(resource $statement [, int $mode = OCI_COMMIT_ON_SUCCESS ])
参数:
- $statement:一个OCI语句句柄,可以是预编译的语句或者游标。
- $mode(可选):指定执行模式。可选值有OCI_COMMIT_ON_SUCCESS、OCI_DEFAULT和OCI_DESCRIBE_ONLY。默认值为OCI_COMMIT_ON_SUCCESS。
返回值:如果执行成功,则返回true。如果执行失败,则返回false。
示例:
- 执行预编译的SQL语句:
$conn = oci_connect('username', 'password', 'localhost/XE');
$sql = 'SELECT * FROM employees WHERE department_id = :dept_id';
$stmt = oci_parse($conn, $sql);
$dept_id = 10;
oci_bind_by_name($stmt, ':dept_id', $dept_id);
oci_execute($stmt);
while ($row = oci_fetch_array($stmt, OCI_ASSOC)) {
// 处理结果
}
oci_free_statement($stmt);
oci_close($conn);
- 执行游标:
$conn = oci_connect('username', 'password', 'localhost/XE');
$cursor = oci_new_cursor($conn);
$stmt = oci_parse($conn, 'BEGIN open :cursor for SELECT * FROM employees; END;');
oci_bind_by_name($stmt, ':cursor', $cursor, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($cursor);
while ($row = oci_fetch_array($cursor, OCI_ASSOC)) {
// 处理结果
}
oci_free_statement($stmt);
oci_free_statement($cursor);
oci_close($conn);
以上示例中,第一个示例展示了如何执行一条预编译的SQL语句,并使用oci_bind_by_name()函数绑定参数。第二个示例展示了如何执行一个游标,并使用oci_new_cursor()函数创建游标。