Вызов хранимой процедуры mssql с использованием драйверов pdo sqlsrv с несколькими запросами внутри процедуры

Я сталкиваюсь с проблемой при вызове хранимой процедуры с помощью драйверов sqlsrv в laravel. Внутри процедуры есть несколько запросов с комбинацией выбора и вставки. Я не могу поделиться кодом здесь как вопрос конфиденциальности.

Так что любой может поделиться кодом, который может работать с laravel для вызова процедуры mssql с несколькими наборами строк результатов.

Заранее спасибо!!

0

Решение

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

?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]