【问题标题】:Stored Procedure returns null or empty value in php存储过程在php中返回null或空值
【发布时间】:2015-04-19 00:39:26
【问题描述】:

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

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

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

存储过程:

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

【问题讨论】:

  • 添加 SET NOCOUNT ON;在 BEGIN 语句之后检查它是否对您有帮助。
  • @PareshJ 是的,谢谢,现在我得到了结果。但我不想修改存储过程。我如何在 PHP 端处理这个问题?
  • 如何在 PHP 代码中添加 SET NOCOUNT?您只需将其添加到您的 SP 中即可。
  • 据我所知,除了更改 sp 之外,没有其他解决方法。

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


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-04
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2012-12-22
    相关资源
    最近更新 更多