您的位置:首页 > 编程语言 > PHP开发

24 php调用mssql存储过程。

2008-07-15 17:51 239 查看
由于某原因,需要用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
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
";
}
} while (mssql_next_result($rs));
print "user name is: ".$userName;
?>

附带问题:
iis 6+php5+mssql的问题Call to undefined function mssql_connect()

本人用iis 6.0+php5+mssql
运行 mssql_connect('localhost','sa','123')这句就会出现
Call to undefined function mssql_connect()这个错误
但是以 APACHE2+PHP5+MSSQL运行确一点问题都没有
上面两次运行是在同一台电脑上,只是把IIS改成APACHE2,请问这怎么处理??
php.ini里面两个主要的参数 extension_dir="c:/php5/ext"
extension=php_mssql.dll前面的冒号已经去掉,已经把PHP_MSSQL.DLL复制到了SYSTEM32目录下。因为用APACHE2运行正常,所以也证明了PHP.INI配制没有什么问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: