我试图与输出SQL服务器+ PHP - 存储过程与多个SELECT返回垃圾输出
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
创建一个SQL Server存储过程$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;
当我回应结果时,它将返回垃圾文本而不是'你好,安迪'。我意识到我不能放2个以上的select语句,如果我删除了第一个select,那么输出就OK了。但我需要一些逻辑的选择语句。
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'或者你想在一个查询中获得两个变量? – Viscocent
添加';'似乎没有帮助:( – navilink