php连接sql2005配置

来源:互联网 发布:网络系统集成商排名 编辑:程序博客网 时间:2024/06/07 20:15

对于这个配置做下记录,脑子不是很好使了,经常会忘记。

这里只做简单的步骤说明了。

环境:xp+apache+php

os:xp sp3

apache: Apache/2.2.4 (Win32)

php:PHP/5.2.13  php-5.2.13-win32-installer.msi 

apache和php的版本信息可以在phpinfo中查看到

 

步骤:

第一步:下载SQLServerDriverForPHP11.EXE文件,解压后里面有:

这时要根据版本来选择dll了,在php的安装路径中有php5nts.dll的那么就对应选取xx_nts_xx.dll版本。

nts(no Thread safe)是非线程安全,ts(Thread safe)是线程安全。还有关于vc6和vc9的版本选择,vc6是针对apache服务器的,

vc9是针对iis服务器的。52,53是根据php版本来的。

我的php版本是5.2.13,服务器是apache,安装的是线程安全版本的php。所以我选择的是php_sqlsrc_52_ts_vc6.dll

开始没有注意php版本选的是53版,结果一直连接不上。

 

选好版本,将dll放到php/ext路径中,system32中也放一个。不放会不会出错我没试。估计是要放的。

在php.ini中添加这个扩展。extension=php_sqlsrv_52_ts_vc6.dll。

重启apache服务器。

这个时候可以测试连接了。

 

测试代码:

<?php

$dbbase='test';
$uid='sa';
$pwd='sa';
$connectionInfo=array("Database"=>$dbbase,"UID"=>$uid,"PWD"=>$pwd);
$serverName="WANGCHUNYAN/SQLEXPRESS";
if(!($conn=sqlsrv_connect($serverName,$connectionInfo))){
    echo "Connection could not be established. ";
    die(print_r(sqlsrv_errors(),true));
}

else
{echo "sql2005 coonnected success!";}

?>

这时会报一个错误:

Connection could not be established. Array
(
    [0] => Array
        (
            [0] => IMSSP
            [SQLSTATE] => IMSSP
            [1] => -49
            [code] => -49
            [2] => The SQL Server Driver for PHP requires the SQL Server 2008 Native Client ODBC Driver (SP1 or later) to communicate with SQL Server.  That ODBC Driver is not currently installed. Access the following URL to download the SQL Server 2008 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712
            [message] => The SQL Server Driver for PHP requires the SQL Server 2008 Native Client ODBC Driver (SP1 or later) to communicate with SQL Server.  That ODBC Driver is not currently installed. Access the following URL to download the SQL Server 2008 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712
        )

    [1] => Array
        (
            [0] => IM002
            [SQLSTATE] => IM002
            [1] => 0
            [code] => 0
            [2] => [Microsoft][ODBC �������] δ���������Ʋ��δָ��Ĭ�������          [message] => [Microsoft][ODBC �������] δ���������Ʋ��δָ��Ĭ�������      )

)

说还需要安装SQL Server 2008 Native Client ODBC Driver,老老实实的在给的下载地址下载安装文件sqlncli.msi

安装后,继续测试

 

这时就能连接成功了。

 

我也参考了好多人的配置。在这里做个简单的记录,以免遗忘。

 

加入一点别人的连接前配置系统,我也是这样按着他的步骤来的:

1.检查文件 php5.2.5/ntwdblib.dll 默认下面有一个,不能连接再替换.

下载正确版本的 ntwdblib.dll (2000.80.194.0),地址: http://webzila.com/dll/1/ntwdblib.zip

(这个ntwdblib.dll我还是用的安装php时的版本2000.80.2039)

2.配置php

a、打开php.in将extension=php_mssql.dll的注释符号去掉

b、打开php.in将mssql.secure_connection = Off改为on。

c、将php_mssql.dll拷贝到php.in中extension_dir 指定的目录或者系统system32目录下。(php_mssql.dll在php的压缩安装包中有)。

以上步骤完成后需要重启apache。

注意:实际使用中发现 如果通过php压缩文件手工安装php到iis下,必须重启机器而不仅仅是iis。

3.配置sqlserver
a. 运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols
b. 允许命名管道 "named pipes" 和 "tcp/ip"
c. 右键点击 "tcp/ip",打开属性 Properties 标签 "IP addresses"
d. 在 TCP 动态端口 "TCP Dynamic Ports" 填入 1433
e. 重启 SQL Server