使用SqlSrv调用sqlserver的存储过程
因为工作需要,我使用的环境是PHP5.6+Apache+Sqlserver2008 ,php用的框架CI ,这次需要执行一个存储过程,然后我在CI中没找到可以使用的方法. 后来我找到mssql .但是mssql只能在5.3以下的版本上使用, 之后我又找到了sqlsrv 可以在5.3以上的版本使用,下面给出用法:
$serverName = "192.168.0.4"; // 这里是数据库所在计算机的ip地址
//第一个参数是选择的数据库, 第二个是用户名,第三个是密码
$connectionInfo = array( "Database"=>"E_JZ_TT16111", "UID"=>"sa", "PWD"=>"code");
$conn = sqlsrv_connect( $serverName, $connectionInfo );//这将会连接上数据库
if( $conn === false ) {//如果连接失败执行
//打印连接失败的理由
die( print_r( sqlsrv_errors(), true));
}
$sql=" exec [dbo].[MyStocks] ? "; //存储过程语句
$params = array('1');
//最后一个参数就是要插入进存储过程中的参数 (插入到?号的位置)
$stmt = sqlsrv_query( $conn, $sql ,$params);
// $stmt是sqlsrv_query返回的声明资源
//sqlsrv_fetch_array 返回下一个数据作为数组 .
while( $row = sqlsrv_fetch_array($stmt) ) {
echo $row['id'].", ".$row['code']."<br />"; //输出数据
}
sqlsrv_free_stmt( $stmt); //释放$stmt