Я сталкиваюсь с проблемой при вызове хранимой процедуры с помощью драйверов sqlsrv в laravel. Внутри процедуры есть несколько запросов с комбинацией выбора и вставки. Я не могу поделиться кодом здесь как вопрос конфиденциальности.
Так что любой может поделиться кодом, который может работать с laravel для вызова процедуры mssql с несколькими наборами строк результатов.
Заранее спасибо!!
MS SQL Server поддерживает хранимые процедуры, которые могут возвращать более одного набора результатов.
С помощью PHP и PDO вы можете получить эти наборы результатов с PDOStatement :: nextRowset () метод.
Важно знать, что если у вас есть выходные параметры в вашей хранимой процедуре, вам нужно извлечь все наборы результатов, чтобы получить выходные значения.
Если Laravel не поддерживают nextRowset()
вы можете попытаться получить базовый экземпляр PDO, используя getPdo()
метод для экземпляра соединения и используйте этот экземпляр для выполнения оператора:
<?php
...
$pdo = DB::connection()->getPdo();
try {
$sql = "{CALL usp_TestProcedure(?)}";
$param = 'ParamValue';
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $param);
$stmt->execute();
do {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
print_r($row, true);
echo '<br>';
}
} while ($stmt->nextRowset());
} catch( PDOException $e ) {
die( "Error executing query" );
}
...
?>
Других решений пока нет …