我正在尝试使用Doctrine DBAL在MSSQL Server上运行以下查询:
$sql = "declare @new_id_num int;
set @new_id_num = 111111;
select @new_id_num as [ID_NUM];";
$statement = $conn->prepare($sql);
$statement->execute();
$newIDNum = $statement->fetchAll();
但是,我在$ newIDNum中返回的是一个空数组 我不知道该怎么做 - 查询在普通的SQL控制台中运行正常。 跟踪似乎很好 - 你可以看到正在运行的查询..
我想我错过了一些简单的东西?
答案 0 :(得分:0)
ZLK是正确的,因为它返回了多个行集 但是,您无法直接从DBAL语句调用 - > nextRowset()。 您必须获取基础PDO语句,并在该
上调用nextRowset(){{1}}
答案 1 :(得分:0)
谢谢你!
我与过程分享了一个例子
$myquery = "DECLARE @return_value int,
@param1 varchar(32),
@out1 varchar(32),
@out2 varchar(32)
EXEC @return_value = MY_PROC
@param1 = N'foo',
@out1= @out1 OUTPUT,
@out2 = @out2 OUTPUT
SELECT @out1 AS out1, @out2 AS out2";
$stmt = $conn->prepare($myquery);
$stmt->execute();
$stmt->getWrappedStatement()->nextRowset();
$myOutputs = $stmt->fetchAll();