从Sql Server 2008开始,不再支持基铅PHP自带的驱动程序,需要使用微软提供的驱动程序。此驱动程序抛弃了mssql系列函数,只能使用sqlsrv和pdo的方式进行连接 *** 作。
步骤1:下载微软Sql Server官方驱动程序,下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=20098
步骤2:安装Sql Server的驱动扩展
将下载好的exe程序打开,解压会释放雀锋搜出很多.dll文件,将对应的dll文件拷贝到你的php扩展包目录下的ext目录。
解压得到的dll文件中文件名的数字部分(例如52,53)代表对应不同的PHP版本,文件名中带n的为非线程安全的,文件名中的顷历vc对应的是VC版本,VC6可以部署到Apach2.X版本,VC9可部署到更高版本Apache。
首先,需要确定你的PHP的版本,假设PHP的版本为5.3.x
其次,要确定你的PHP运行的是线程安全的还是非线程安全的(假设线程安全)。
另外,还需要确认的版本(假设Apache2.2)。
那么,你对应的文件应当是php_pdo_sqlsrv_53_ts_vc6.dll(PDO链接)和php_sqlsrv_53_ts_vc6.dll(sqlsrv链接),将这两个文件拷贝到你的PHP的扩展包下的ext目录,然后要修改php.ini,增加这两项扩展的支持:
extension=php_sqlsrv_53_ts_vc6.dll
extension=php_pdo_sqlsrv_53_ts_vc6.dll
保存后重启Apache即可。
准备工作:SQLSRV20.EXE(PHP mssql扩展库)、php_mssql.dll文件。
安装PHP mssql扩展库:安装SQLSRV20.EXE,选择解压路径为:D:\wamp\bin\php\php5.2.9-2\ext。
修改php.ini配置文件:打开php.ini配置文件,将其中
extension=php_mssql.dll
extension=php_pdo_mssql.dll
前面的分号去掉,然后再”Dynamic Extensions”区域的后面添加php_sqlsrv的动态链接库文件: 卖清 extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
注意事项:查看D:\wamp\bin\php\php5.2.9-2\ext目录下有也Php_mssql.dll文件。如果没有,则下载该文件,复制到该目录下。
测试环境配置是否成功:打开浏览器,在地址栏输入http://localhost/?phpinfo=1 ,如果在打开的网页中查询到如下页面内容,则配置成功,否则配置失败。
重启WAMP所有服务。
测试:编写一个简单的SQL SERVER2008数据库连接的测试程序。测试程序具体代码如下:
<?php
$server ="192.168.61.181" //服务器IP地址,如果是本地,可以写成localhost
$uid ="sa" //用户名中敏前
$pwd ="cwh"//密码
$database ="UserMan" //数据库名称
//进行拿耐数据库连接
$conn =mssql_connect($server,$uid,$pwd) or die ("connect failed")
mssql_select_db($database,$conn)
//执行查询语句
$query ="select * from users"
$row =mssql_query($query)
//打印输出查询结果
while($list=mssql_fetch_array($row))
{
print_r($list)
echo "<br>"
}
?>
查询结果演示:
1. [代码][PHP]代码 跳至 [1] [全屏预览]?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
php5.3以后,已经不对sqlserver支持连接扩展了,不过微软租物桥官方还是对php5.3以后进行了扩展解决方案。
1.确认要连接sqlserver的数据库版本为2005
2.确认php支持的vc9还是vc6,这里可以从phpinfo()里看出来。
3.确认php的版本为5.3,并且确认php是否线程安全,可以再phpinfo()里看出来。
3.根据上面到微软官方下载扩展。或者直接下载附件。
2,3点在phpinfo里的Zend Extension Build这个属性中可以看出来蚂镇。
如:API220090626,TS,VC9TS代表线程安全,VC9版本的扩展。
API220090626,NTS,VC6 NTS代表非现成安全,VC6版本的扩展。
TS,VC9将php_pdo_sqlsrv_53_ts_vc9.dll,php_sqlsrv_53_ts_vc9.dll这两个扩展赋值到php/ext目录下。
TS,VC6将php_pdo_sqlsrv_53_ts_vc6.dll,php_sqlsrv_53_ts_vc6.dll这两个扩展赋值到php/ext目录下。
NTS,VC9 将php_pdo_sqlsrv_53_nts_vc9.dll,php_sqlsrv_53_nts_vc9.dll这两个扩展赋值到php/ext目录下。
NTS,VC6 将php_pdo_sqlsrv_53_nts_vc6.dll,php_sqlsrv_53_nts_vc6.dll这两个扩展赋值到php/ext目录下。
同时,打开php.ini文件,写入下面代码
extension=复制在ext下的pdo扩展//一定要对应
extension=复制在ext下的扩展//一定要对应
一个php_pdo_sqlsrv对应一个php_sqlsrv
完成上面 *** 作后。重启iis.
打开phpinfo()
可以查询PDO pdo项里包括sqlsrv
查询pdo_sqlsrv
如果上面都存弊猛在,则php5.3连接sqlserver2005已经成功了。。
然后写个测试连接的实例,测试成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)