我在端口8080上的Windows Server 2012 R2上安装了PHP 5.6.23(线程安全)和Apache 2.4.20。我正在尝试启用PDO
以连接到MS SQL Server。 php docs表示我需要从Microsoft
然后我应该将下载的.dll
文件移到ext
文件夹中。然后,将以下行添加到php.ini
文件以启用新扩展名
extension=php_sqlsrv_56_ts.dll
extension=php_pdo_sqlsrv_56_ts.dll
最后,我重新启动Apache服务以加载新配置。但是当我尝试访问连接到MS SQL Server的PHP脚本时,我收到以下错误
Fatal error: Undefined class constant 'SQLSRV_ATTR_ENCODING'
然后,当我查看phpinfo()
输出时,我看到php没有像预期的那样用mssql扩展编译。这是我看到的
Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"
我还需要做什么才能正确启用php 5.6.23中的PDO-MSSQL?
答案 0 :(得分:2)
我遇到了同样的问题。要解决此问题,请打开php.ini
文件并查找变量Extension_dir
变量。它可能设置为ext
。将ext
的值更改为文件夹ext
所在的完整路径。
假设PHP文件夹在C
驱动器上,就像这样
extension_dir = "C:/php/ext/"
我希望它有效
答案 1 :(得分:-1)
请注意,Microsoft有一段时间没有更新此驱动程序。基于针对源代码头修订版(来自codeplex)的补丁,有基于PHP 5.5的非官方版本,以及未经证实的传言,即使用PHP 5.6构建源代码很困难。
官方版本仅针对PHP 5.2,5.3和5.4发布。
这些问题可能同时适用于PDO驱动程序(pdo_sqlsrv)和非PDO驱动程序(sqlsrv扩展名),因为它们似乎是一起构建和发布的。