首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:多个SQL语句

问PHP:多个SQL语句
EN

Stack Overflow用户
提问于 2013-11-23 06:10:39
回答 1查看 1.2K关注 0票数 0

我有一个SQL查询,如下所示:

代码语言:javascript
复制
$sql = "SELECT * FROM TABLE ... 
INSERT ...
DELETE ...";

并且我想在查询Oracle数据库时使用多条语句。我知道在mySQL中有mysqli_multi_query()。这在Oracle中是可能的吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-11-23 08:15:44

摘自:Using PHP and Oracle Database 12c Implicit Result Sets

新的Oracle数据库12c“隐式结果集”(IRS)功能允许从存储的PL/SQL过程(或PL/SQL匿名块)返回查询结果,而不需要特殊的PHP代码。在编译OCI8 2.0.0-devel扩展并将其与Oracle数据库12c一起使用时,PHP2.0.0-devel扩展中提供了对is的支持。(Oracle2.0可以编译并与其他版本的OCI8数据库一起使用,但可用特性集减少了)。

代码语言:javascript
复制
<?php
$c = oci_connect('hr', 'welcome', 'localhost/pdborcl');
$sql =
 "declare
    c1 sys_refcursor;
  begin
    open c1 for select city from locations where rownum < 4;
    dbms_sql.return_result(c1);
    open c1 for select first_name, last_name from employees where rownum < 4;
    dbms_sql.return_result(c1);
  end;";
$s = oci_parse($c, $sql);
oci_execute($s);
while (($s2 = oci_get_implicit_resultset($s))) {
    // Now treat $s2 as a distinct query statement resource
    $ncols = oci_num_fields($s2);
    for ($i = 1; $i <= $ncols; ++$i) {
        $colname = oci_field_name($s2, $i);
        echo $colname . " ";
    }
    echo "\n";
    while (($row = oci_fetch_row($s2)) != false) {
        foreach ($row as $item) {
            echo $item . " ";
        }
        echo "\n";
    }
}
?>

或者,您可以在Oracle中创建一个存储过程(可以包含多个语句和输出参数),然后从PHP调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20155442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档