函数名称: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()函数检查结果集是否有行数据,再进行遍历或移动操作。