Doctrine DBAL和SQL变量的问题

时间:2017-10-16 20:31:01

标签: sql sql-server symfony doctrine-orm doctrine

我正在尝试使用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控制台中运行正常。 跟踪似乎很好 - 你可以看到正在运行的查询..

我想我错过了一些简单的东西?

2 个答案:

答案 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();