32位Wamp环境下sqlsrv_connect()无法正常工作的技术求助
正确保留SQL Server驱动扩展的方法
首先,你得先明确两个核心信息,这是筛选扩展的关键:
- 你的WAMP里PHP的具体版本(比如5.3、5.4、5.5还是5.6)
- PHP的线程安全模式(TS/NTS,WAMP默认是TS线程安全版本)
第一步:确认PHP版本和线程安全模式
- 打开WAMP的管理面板,点击右下角的WAMP图标,依次选择
PHP -> Version,就能看到当前使用的PHP版本号; - 或者新建一个php文件,内容写
<?php phpinfo(); ?>,访问这个文件后,搜索Thread Safety项:如果显示Enabled就是TS(线程安全),Disabled就是NTS(非线程安全)。WAMP默认用的是TS版本,所以大概率是Enabled。
第二步:筛选要保留的扩展
你列出的扩展文件名里的数字(53/54/55/56)对应PHP的主版本号,ts代表线程安全,nts是非线程安全。你只需要保留和你的PHP版本匹配、且对应线程安全模式的两个扩展:
- 比如你的PHP是5.4版本、TS模式,就只留:
extension=php_sqlsrv_54_ts.dll extension=php_pdo_sqlsrv_54_ts.dll - 其他所有不匹配的扩展(比如53、55、56的,以及nts的)都要注释掉——在扩展行前面加个分号
;就行,比如:;extension=php_sqlsrv_53_nts.dll ;extension=php_sqlsrv_53_ts.dll ;extension=php_sqlsrv_54_nts.dll ;extension=php_sqlsrv_55_nts.dll ;extension=php_sqlsrv_55_ts.dll ;extension=php_sqlsrv_56_nts.dll ;extension=php_sqlsrv_56_ts.dll
额外注意
因为你用的是32位WAMP,所以一定要确保你下载的SQL Server驱动是32位版本的,哪怕你的操作系统是64位也得用32位驱动,否则会加载失败。
最后,修改完ini文件后,重启WAMP的Apache服务,再用phpinfo()检查一下,看看sqlsrv和pdo_sqlsrv的扩展是否已经成功加载。
内容的提问来源于stack exchange,提问作者shweta_kaushish
相关产品推荐
相关产品推荐

