原则 DBAL 和 SQL 变量的问题



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

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

ZLK 是正确的,因为它返回了多个行集。
但是,不能直接从 DBAL 语句调用 ->nextRowset()。你必须获取底层的PDO语句,并调用nextRowset()

$statement->getWrappedStatement()->nextRowset();
$newIDNum = $statement->fetchAll();

谢谢本!

我分享一个带有过程的示例

$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();

相关内容

  • 没有找到相关文章

最新更新