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连接)
代码如下:
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 )){ |
5.例子
链接示例:
mssql_lib.php文件如下:
代码如下:
04 | function __construct( $dbhost , $dbuser , $dbpass , $dbname ) { |
05 | $connectionInfo = array ( "UID" => $dbuser , "PWD" => $dbpass , "Database" => $dbname ); |
06 | $this ->con = sqlsrv_connect( $dbhost , $connectionInfo ); |
09 | $result = sqlsrv_query( $this ->con, $sql ); |
11 | function getRow( $sql ){ |
12 | $result = sqlsrv_query( $this ->con, $sql ); |
14 | while ( $row = sqlsrv_fetch_array( $result )) |
20 | function getAll( $sql ){ |
21 | $result = sqlsrv_query( $this ->con, $sql ); |
23 | while ( $row = sqlsrv_fetch_array( $result )) |
29 | function __destruct() { |
test.php页面如下:
代码如下:
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 ); |