【发布时间】:2017-02-24 17:33:12
【问题描述】:
我使用bindParam来绑定存储过程的返回值,一旦语句执行完毕
但我得到了零,我已将存储过程的输出变量指定为 BIGINT
我正在绑定参数,如下所示
$sql = "{:retval = CALL sp_testProc()}";
$stmt->bindParam('retval', $proc_pass_val, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT, 4);
bindparam最后一个参数是数据类型的长度,我这里传4,但是返回0,不知道为什么
谁能帮我解决这个问题
提前致谢
【问题讨论】:
-
数据类型的长度可能是多少?假设我从存储过程中得到返回值 900,并且我在存储过程中将返回值定义为 BIGINT,而不管它给我的任何值是零,
-
这根本与长度无关。它是关于调用 inout 变量 的正确语法
-
我会从存储过程中得到数字输出,我将数据类型指定为
PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT,即使我得到零,也不知道为什么 -
因为语法错误
标签: php sql-server stored-procedures pdo