我想显示sql server的sp的返回值。我试着用这种方法,但没有成功。
我使用PHPPDO进行数据库连接,并执行一个sql server存储过程。
$feesObj = new FeesConfig('config/fees.ini');
$feesConfig = $feesObj->getFeesConfig();
$studentId = $user->getSyStudentId();
$statement = $conn->prepare('exec ?= usp_GetStudentDegreeLevel ?');
$statement->bindParam(1, $retval, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT);
$statement->bindParam(2, $studentId, PDO::PARAM_INT);
$statement->execute();
$row = $statement->fetch(PDO::FETCH_ASSOC);
var_dump("return value". $retval);exit;
此sp执行的输出
NULL
预期结果
1
我对这个代码的错误之处。我正在呼叫sql server sp。
1条答案
按热度按时间zhte4eai1#
你需要考虑以下几点:
存储的prtocedure的返回值是整数,因此需要使用适当的绑定。
如遇意外
OUTPUT
参数,您需要设置maxLength
中的参数PDOStatement::bindParam
呼叫正如文档中所解释的,要…指示参数是存储过程中的out参数,必须显式设置长度。您需要获取所有可能的结果集(使用
PDOStatement::nextRowset
)获取输出参数的值。我通常使用以下方式执行存储过程(使用sql server的php驱动程序):