PHP如何连接MSSQL2005/2008数据库(SQLSRV)配置实例(SQL Server Driver for PHP)

分类:数据库| 发布:llmaomi| 查看:406 | 发表时间:2015/3/27

PHP连接MSSQL2008/2005数据库与以往的连接mssql2000是不一样的,连接mssql2008/2005是需要自己添加PHP对MSSQL连接的驱动扩展了,而我们常用的hp.ini中的extension=php_mssql.dll扩展只适用连接于MSSQL2000,下面我们就来看看对此的解决办法

1.下载扩展

(1)去官方下载一个SQL Server Driver for PHP的扩展包,我是在这里下载的http://www.microsoft.com/en-us/download/details.aspx?id=20098【记得下载后好像是要先安装然后再解压】

(2)将下载下来的rar文件解压后你就会得到一堆的.dll文件

下载驱动程序,下载后安装释放程序,里面有以下文件:
php_pdo_sqlsrv_52_nts.dll
php_pdo_sqlsrv_52_ts.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_52_nts.dll
php_sqlsrv_52_ts.dll
php_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc6.dll
php_sqlsrv_53_ts_vc9.dll
SQLServerDriverForPHP.chm(手册,英文够好的话,可以看看,嘿嘿)
SQLServerDriverForPHP_License.rtf
SQLServerDriverForPHP_Readme.htm(自述文件)

2.添加扩展

根据(vc6/vc9)需要选择扩展,我的环境是WAMP(php5.2.6/apache2.2.8),我选用的是php_sqlsrv_52_ts_vc6.dll,php_pdo_sqlsrv_52_ts_vc6.dll这两个文件,复制到wamp安装目录下的ext目录下,我的ext目录是在wamp/bin/php/php5.2.6/ext/

3.配置php.ini

(1)在php.ini的Dynamic Extensions中添加如下两条扩展:
    extension=php_sqlsrv_52_ts_vc6.dll
    extension=php_pdo_sqlsrv_52_ts_vc6.dll
(2)将;extension=php_pdo.dll前面的;去掉,开启pdo连接扩展
(3)重新启动apache

4.连接数据库(pdo连接)

代码如下:
01<?php
02   $servern="COMPUTERNUMBER2015\SQLTRY";
03   $coninfo=array("Database"=>"camnprDB","UID"=>"sa","PWD"=>"123");
04   $conn=sqlsrv_connect($servern,$coninfo) or die ("连接失败!");
05   $val=sqlsrv_query($conn,"select * from usertable");
06   while($row=sqlsrv_fetch_array($val)){
07     echo $row[1]."
08";
09   }
10   sqlsrv_close($conn);
11 ?>

5.例子

链接示例:
mssql_lib.php文件如下:

代码如下:
01<?php
02 class DB {
03     var $con = null;
04     function __construct($dbhost,$dbuser,$dbpass,$dbname) {
05         $connectionInfo array("UID"=>$dbuser,"PWD"=>$dbpass,"Database"=>$dbname);
06         $this->con = sqlsrv_connect($dbhost,$connectionInfo);
07     }
08     function query($sql){
09         $result = sqlsrv_query($this->con, $sql);
10     }
11     function getRow($sql){
12         $result = sqlsrv_query($this->con, $sql);
13         $arr = array();
14         while($row = sqlsrv_fetch_array($result))
15         {
16             $arr[] = $row;
17         }
18         return $arr[0];
19     }
20     function getAll($sql){
21         $result = sqlsrv_query($this->con, $sql);
22         $arr = array();
23         while($row = sqlsrv_fetch_array($result))
24         {
25             $arr[] = $row;
26         }
27         return $arr;
28     }
29     function __destruct() {
30         unset($con);
31     }
32 }

test.php页面如下:

代码如下:
1//简单调用
2 $db = new DB(DB_HOST, DB_USER, DB_PASS, DB_NAME);
3 $sql = "select * from camnpr_order_batch where (status=0 or status is null) and lock_id is not null  ";
4 $orders_add_list = $db->getAll($sql);
365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/database/1959.html