在 PHP 中,要使用 SQL Server 存储过程的输出参数,需要遵循以下步骤:
sqlsrv
扩展。sqlsrv_prepare
函数准备一个 SQL 语句,该语句调用存储过程。sqlsrv_execute
函数执行准备好的 SQL 语句。sqlsrv_fetch
函数获取存储过程的输出参数。以下是一个示例:
<?php
// 连接到 SQL Server 数据库
$serverName = "your_server_name";
$connectionOptions = array(
"Database" => "your_database_name",
"Uid" => "your_username",
"PWD" => "your_password"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
if (!$conn) {
die(print_r(sqlsrv_errors(), true));
}
// 创建存储过程
$sql = "CREATE PROCEDURE GetOutputParam
@Param1 INT OUTPUT
AS
BEGIN
SET @Param1 = 123
END";
$stmt = sqlsrv_query($conn, $sql);
if (!$stmt) {
die(print_r(sqlsrv_errors(), true));
}
// 调用存储过程
$sql = "{CALL GetOutputParam (?)}";
$param1 = 0;
$params = array(
array(&$param1, SQLSRV_PARAM_OUT)
);
$stmt = sqlsrv_prepare($conn, $sql, $params);
if (!$stmt) {
die(print_r(sqlsrv_errors(), true));
}
$result = sqlsrv_execute($stmt);
if (!$result) {
die(print_r(sqlsrv_errors(), true));
}
// 获取输出参数
if (sqlsrv_fetch($stmt)) {
echo "Output parameter: " . $param1 . PHP_EOL;
} else {
die(print_r(sqlsrv_errors(), true));
}
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>
在这个示例中,我们首先连接到 SQL Server 数据库,然后创建一个名为 GetOutputParam
的存储过程,该存储过程具有一个名为 Param1
的输出参数。接下来,我们使用 sqlsrv_prepare
函数准备一个 SQL 语句,该语句调用存储过程,并使用 sqlsrv_execute
函数执行准备好的 SQL 语句。最后,我们使用 sqlsrv_fetch
函数获取存储过程的输出参数,并将其打印到控制台上。
领取专属 10元无门槛券
手把手带您无忧上云