php5.3+不再支持php_mssql.dll 扩展库了,即是使用php5.2.x中的php_mssql.dll 也无法使用。
原来PHP5.2.x本身有个php_mssql.dll的扩展用来连接Sql server,但是貌似这个dll只是用来连接低版 本 Sql server的(2000以下版本),在Sql server 2005及以上版本则根本无法使用mssql_connect连接到数据库。
微软专门为PHP出了个SQL Server的扩展(Windows版本的),对于Windows下使用php开发SQL Server应用来说,这个扩展有利于利用SQL Server来开发php平台连接sql server数据库管理系统。
下面给大家讲解下如何配置PHP5.3+相关扩展来连接操作SQL Server 2005/2008…
本人PHP运行环境Apache+php5.3.29 (NTS非线程安全) 操作系统:Windows 7
使用的是Microsoft Drivers for PHP for SQL Server的扩展包做连接。
1.下载Microsoft Drivers for PHP for SQL Server 扩展包 它分为2.0和3.0版本。
System Requirements (Microsoft Drivers for PHP for SQL Server)
下载地址https://www.microsoft.com/en-us/download/details.aspx?id=20098
这个扩展包对电脑的操作系统有要求,对应的系统使用对应的版本(本人使用的是2.0版本)。
3.0 所支持的操作系统
Windows Server 2008 R2 SP1
Windows Vista SP2
Windows Server 2008 SP2
Windows 7 SP1
2.0 所支持的操作系统
Windows Server 2003 Service Pack 1
Windows XP Service Pack 3
Windows Vista Service Pack 1 or later
Windows Server 2008
Windows Server 2008 R2
Windows 7
所以本次实例使用的是 2.0 里面php_sqlsrv_53_nts_vc9.dll 扩展 ;
2.将php_sqlsrv_53_nts_vc9.dll文件复制到php的扩展文件夹 (一般的都在
php/ext文件夹下面);
3.将此php_sqlsrv_53_nts_vc9.dll文件拷贝到系统所在盘的system32中;
4.打开php.ini文件,在extension=php_mysql.dll 下面一行添加
extension=php_sqlsrv_53_nts_vc9.dll 之后重启apache。
运行phpinfo.php,来查看phpinfo的配置信息,如果看到下图信息,则说明可添加成功,您的php5.3.x可以链接sql server了。
5.测试代码
$serverName = "127.0.0.1"; $uid = "sa"; $pwd = "123456"; $db = "demo"; $connectionInfo = array( "UID"=$uid,"PWD"=$pwd,"Database"=$db ); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn === false ) { echo "Unable to connect."; die(var_dump( sqlsrv_errors(), true)); }else{ echo "SQLServer连接成功!!!"; }
6.运行上边代码会提示您以下内容
Unable to connect.
array(2) { [0]=> array(6) { [0]=> string(5) “IMSSP” [“SQLSTATE”]=>
string(5) “IMSSP” [1]=> int(-49) [“code”]=> int(-49) [2]=> string(390)
“This extension requires either the Microsoft SQL Server 2008 Native
Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client
ODBC Driver to communicate with SQL Server. Neither of those ODBC
Drivers are currently installed. Access the following URL to download
the Microsoft SQL Server 2008 R2 Native Client ODBC driver for x86:
http://go.microsoft.com/fwlink/?LinkId=163712″ [“message”]=> string
(390) “This extension requires either the Microsoft SQL Server 2008
Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native
Client ODBC Driver to communicate with SQL Server. Neither of those
ODBC Drivers are currently installed. Access the following URL to
download the Microsoft SQL Server 2008 R2 Native Client ODBC driver for
x86: http://go.microsoft.com/fwlink/?LinkId=163712″ } [1]=> array(6) {
[0]=> string(5) “IM002″ [“SQLSTATE”]=> string(5) “IM002″ [1]=> int(0)
[“code”]=> int(0) [2]=> string(71) “[Microsoft][ODBC 驱动程序管理器] 未
发现数据源名称并且未指定默认驱动程序” [“message”]=> string(71)
“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程
序” } } bool(true)
7.解决办法:点击http://msdn.microsoft.com/en-us/library/cc296170.aspx 这个链接 进入下载驱动程序包就可以了,
X86 Package(sqlncli.msi) 。安装的时候有可能某些软件会影响到安装,导致安装失败,建议您关掉没用的程序。
8.之后再运行第5步代码; 提示:”sqlserver连接成功!!!” 。
9.具体的sqlsrv对SQL Server的操作方法,这就不做介绍了。在扩展包里面有手册,PHP手册里也有详细介绍。
评论