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

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

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

我找到了根本原因。我在该存储过程中使用 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);

最佳答案

请试试这个:

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

关于php - 存储过程在 php 中返回 null 或空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28576384/

相关文章:

php - 正则表达式获取 "any_characters((number,number))"

sql - 将记录的每一列转换为单独的记录

sql-server - 为什么Len函数可以使用索引?

sql-server - T-SQL 中是否有替代 "IN"语句的方法?

php自定义异常处理

javascript - Laravel 5 AJAX 重定向问题获取 'Class App\Http\Controllers\does not exist'

javascript - AJAX 将 POST 变量发送到 PHP

sql - Oracle SQL select语句哪个 "sleeps"?普通 SQL?

sql - 如何在 SQL 中使用 WHERE 条件从下一条记录中获取值?

sql - Count(*) 不同于 sys.partitions 中的行