存储过程在php中返回null或空值

时间:2015-02-18 05:08:47

标签: php sql sql-server stored-procedures sql-server-2012

我正在使用sql server 2012并连接到php。当我在sql管理工作室中执行存储过程时,它工作正常。但是当我在php中调用存储过程时,它返回空值或空值

我找到了根本原因。我在该存储过程中使用PRINT。如果我在存储过程中删除该打印它在PHP中正常工作。如果我使用意味着它获得空值

为什么呢?以及如何在这种情况下从PHP中获取存储过程的结果?(sp有print语句)

存储过程:

CREATE PROCEDURE spname 
       @Id INT
AS
Begin
    PRINT "some notes"
    SELECT * FROM TABLE_NAME
end

Php代码

$sp="EXEC spname @Id=20";
$query=$con->prepare($sp);
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
print '<PRE>';
print_r($result);

1 个答案:

答案 0 :(得分:1)

请试试这个:

$sp="SET NOCOUNT ON;EXEC spname @Id=20";
$query=$con->prepare($sp);
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
print '<PRE>';
print_r($result);