php调用mssql存储过程。
由于某原因,需要用php连接mssql,又由于某些原因需要调用mssql的存储过程(观众:靠!哪来的这么多原因)。
这里给出实现方法,注释就不多写了,详见php参考手册
sql server存储过程
CREATE PROCEDURE ProcTest @id int, @name varchar(30) output
AS
select @name=username from mm_user where id=@id
select * from mm_user
AS
select @name=username from mm_user where id=@id
select * from mm_user
php实现代码:
<?php
$userId = 2; // test parameter
$userName; // test return value
$link = mssql_connect("192.168.1.38", "sa", "sa123456a") or die("Can't connect sql server");
mssql_select_db("mm_db", $link) or die("Select database failure");
$stmt = mssql_init("ProcTest", $link) or die("initialize stored procedure failure");
mssql_bind($stmt, "@id", $userId, SQLINT4);
mssql_bind($stmt, "@name", $userName, SQLVARCHAR, true);
$rs = mssql_execute($stmt, false);
do {
while ($row = mssql_fetch_array($rs)) {
print $row["id"]." ------ ".$row["username"]." ------ ".$row["password"]." ------ \r\n<br>";
}
} while (mssql_next_result($rs));
print "user name is: ".$userName;
?>
$userId = 2; // test parameter
$userName; // test return value
$link = mssql_connect("192.168.1.38", "sa", "sa123456a") or die("Can't connect sql server");
mssql_select_db("mm_db", $link) or die("Select database failure");
$stmt = mssql_init("ProcTest", $link) or die("initialize stored procedure failure");
mssql_bind($stmt, "@id", $userId, SQLINT4);
mssql_bind($stmt, "@name", $userName, SQLVARCHAR, true);
$rs = mssql_execute($stmt, false);
do {
while ($row = mssql_fetch_array($rs)) {
print $row["id"]." ------ ".$row["username"]." ------ ".$row["password"]." ------ \r\n<br>";
}
} while (mssql_next_result($rs));
print "user name is: ".$userName;
?>

浙公网安备 33010602011771号