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" );
}
...
?>