PHP7、PDO、DBLIB不返回存储过程的结果

PHP7、PDO、DBLIB不返回存储过程的结果,php,sql-server,stored-procedures,Php,Sql Server,Stored Procedures,我无法从PHP中的存储过程中获得输出。我的变量$value没有更改。我已将属性绑定设置为参数输入\输出。正确的响应是程序中的int 过程中的SQL代码运行正常。怎么了 我的环境: PHP7.0.15 FreeTDS 0.91 MSSQL 2012 SP1 SQL过程: DECLARE @Aaa int EXECUTE [sp_insert_org] @Aaa = @Aaa OUTPUT SELECT @Aaa $value = 'hello'; $sth = $db->pr

我无法从PHP中的存储过程中获得输出。我的变量
$value
没有更改。我已将属性绑定设置为
参数输入\输出
。正确的响应是程序中的
int

过程中的SQL代码运行正常。怎么了

我的环境:

  • PHP7.0.15
  • FreeTDS 0.91
  • MSSQL 2012 SP1
SQL过程:

DECLARE @Aaa int

EXECUTE [sp_insert_org] 
@Aaa = @Aaa OUTPUT

SELECT  @Aaa
$value = 'hello';

$sth = $db->prepare($sql);
$sth->bindParam(1, $value, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT, 4); 
$sth->execute();

var_export($value);
'hello'
PHP代码:

DECLARE @Aaa int

EXECUTE [sp_insert_org] 
@Aaa = @Aaa OUTPUT

SELECT  @Aaa
$value = 'hello';

$sth = $db->prepare($sql);
$sth->bindParam(1, $value, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT, 4); 
$sth->execute();

var_export($value);
'hello'
结果:

DECLARE @Aaa int

EXECUTE [sp_insert_org] 
@Aaa = @Aaa OUTPUT

SELECT  @Aaa
$value = 'hello';

$sth = $db->prepare($sql);
$sth->bindParam(1, $value, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT, 4); 
$sth->execute();

var_export($value);
'hello'

$sth->execute()
之后,可以添加
$sth->closeCursor()
并尝试回显变量吗?在添加函数closeCursor()之后是相同的结果您好。请尝试参考,可能会有所帮助。有效的答案是在回显变量之前使用
$sth->fetch()
。并不是说它能解决这个问题,而是说它是一个最好的解决方案。实际上,我没有解决它,但谢谢。