array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.sqlsrv-next-result.php', 1 => 'sqlsrv_next_result', ), 'up' => array ( 0 => 'ref.sqlsrv.php', 1 => 'Функции SQLSRV', ), 'prev' => array ( 0 => 'function.sqlsrv-has-rows.php', 1 => 'sqlsrv_has_rows', ), 'next' => array ( 0 => 'function.sqlsrv-num-fields.php', 1 => 'sqlsrv_num_fields', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/sqlsrv/functions/sqlsrv-next-result.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(No version information available, might only be in Git)
sqlsrv_next_result — Делает активным следующий результат указанного оператора
Делает активным следующий результат указанного оператора. Результаты включают наборы результатов, количество строк и выходные параметры.
stmt
Оператор, по которому вызывается следующий результат.
Возвращает true
, если следующий результат был успешно получен, false
, если произошла ошибка
и null
, если результатов для получения больше нет.
Пример #1 Пример использования sqlsrv_next_result()
В следующем примере выполняется пакетный запрос, который добавляет записи в таблицу, а затем выбирает данные из таблицы. Это даёт два результата оператора: один для строк, на которые влияет INSERT, и один для строк, возвращаемых SELECT. Чтобы перейти к строкам, возвращаемым SELECT, необходимо вызвать sqlsrv_next_result(), чтобы пройти мимо первого результата.
<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$query = "INSERT INTO Table_1 (id, data) VALUES (?,?); SELECT * FROM TABLE_1;";
$params = array(1, "some data");
$stmt = sqlsrv_query($conn, $query, $params);
// Использовать первый результат (строки, затронутые INSERT) без вызова sqlsrv_next_result.
echo "Затронуто строк: ".sqlsrv_rows_affected($stmt)."<br />";
// Переход к следующему результату и отображение результатов.
$next_result = sqlsrv_next_result($stmt);
if( $next_result ) {
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
echo $row['id'].": ".$row['data']."<br />";
}
} elseif( is_null($next_result)) {
echo "Больше строк нет.<br />";
} else {
die(print_r(sqlsrv_errors(), true));
}
?>