首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[函数]sqlsrv_next_result()函数—用法及示例

发布于 2025-05-07 22:45:59
0
8

函数名称:sqlsrv_next_result()

适用版本:PHP 5.3.0及以上版本

函数描述:sqlsrv_next_result()函数用于在执行多个SQL语句时,将结果集指针移动到下一个结果集。

语法:bool sqlsrv_next_result(resource $stmt)

参数:

  • $stmt:必需,表示SQL语句的资源句柄。

返回值:如果成功移动到下一个结果集,则返回true;如果没有更多的结果集或移动失败,则返回false。

示例:

<?php
// 连接到数据库
$serverName = "serverName\sqlexpress";
$connectionOptions = array(
    "Database" => "dbName",
    "Uid" => "username",
    "PWD" => "password"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);

// 执行多个SQL语句
$sql = "SELECT * FROM table1; SELECT * FROM table2;";
$stmt = sqlsrv_query($conn, $sql);

// 检查是否有结果集
if (sqlsrv_has_rows($stmt)) {
    // 遍历第一个结果集
    while ($row = sqlsrv_fetch_array($stmt)) {
        echo $row['column1'] . ", " . $row['column2'] . "<br>";
    }

    // 移动到下一个结果集
    if (sqlsrv_next_result($stmt)) {
        // 遍历第二个结果集
        while ($row = sqlsrv_fetch_array($stmt)) {
            echo $row['column1'] . ", " . $row['column2'] . "<br>";
        }
    } else {
        echo "没有更多的结果集或移动失败。";
    }
}

// 关闭连接和释放资源
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>

注意事项:

  • 在执行多个SQL语句时,需要通过sqlsrv_next_result()函数移动到下一个结果集才能访问后续的结果集。
  • 在移动到下一个结果集之前,必须确保当前结果集已经遍历完毕或关闭了结果集的游标。
  • 需要先通过sqlsrv_has_rows()函数检查结果集是否有行数据,再进行遍历或移动操作。
评论
啊龙
Lv.1普通用户

8568

帖子

29

小组

2696

积分

站长交流