【发布时间】:2014-03-06 04:05:09
【问题描述】:
我正在尝试创建一个带有输出的 SQL Server 存储过程
SQL 服务器
CREATE PROCEDURE sp_test1
@in_var VARCHAR(20),
@out_var VARCHAR(50) OUTPUT
AS
BEGIN
SELECT * FROM Company WHERE COM_ID=1
SELECT @out_var = 'Hello, ' + @in_var
END
PHP
$result = "";
$sql = "{CALL sp_test1(?,?)}";
$param = array(
array("Andy",SQLSRV_PARAM_IN),
array($result, SQLSRV_PARAM_OUT, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR), SQLSRV_SQLTYPE_VARCHAR(50))
);
$stmt = sqlsrv_query($conn, $sql, $param);
echo $result;
当我回显结果时,它返回垃圾文本而不是 'Hello, Andy'。我意识到我不能放置超过 2 个选择语句,如果我删除了第一个选择,那么输出就可以了。但我需要一些逻辑的 select 语句。
SELECT * FROM Company WHERE COM_ID=1 -- will be used in logic later
SELECT @out_var = 'Hello, ' + @in_var -- i just want to output this!
那么如何强制只输出 LAST SELECT 语句?
【问题讨论】:
-
尝试添加';'在您选择查询之间:'SELECT * FROM Company WHERE COM_ID=1;SELECT out_var = 'Hello, ' + in_var' 或者您想在一个查询中同时获取两个变量?
-
添加了';'似乎没有帮助:(
标签: php sql-server stored-procedures output multiple-select