- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我最近安装了 IIS、PHP 5.3.5 和 MySQL,一切正常。
然后我对 MS SQL 也有要求,我认为这是一项简单的任务,现在让我发疯,我不知道如何让它工作。
根据 php_info()
,MS SQL 驱动程序未加载。
我下载了 php_mssql.dll
并在 php.ini
中启用了它,但是没有用。我发现新版本的 PHP 使用了不同的 dll。所以我下载了新的,把它放在 ext 文件夹中,并更新了 php.ini
,但仍然没有成功。
php_info()
仍然没有显示驱动程序已加载。
我准备卸载 IIS 和 PHP,并安装我之前安装的 Apache。
这个问题是我最后一次尝试,有人可以帮忙吗?
最佳答案
这是我前一段时间写的客户常见问题解答的片段,旨在帮助我们的专用托管客户启动 PHP 并使用 MS SQL 驱动程序运行。它可能会重复上面评论中已经传授的一些知识,但它的完整性也可能会帮助其他人从头开始:
注意:很明显,自从我写这篇文章以来,PHP 版本号发生了一些变化,但一般原则仍然适用。
安装先决条件:Microsoft Drivers for PHP for SQL Server 需要 SQL Native Client:
Microsoft SQL Server 2008 R2 Native Client X64 - for 64 bit Windows
or
Microsoft SQL Server 2008 R2 Native Client X32 - for 32 bit Windows
下载并安装与您的系统匹配的 Native Client 驱动程序。
PHP MS SQL 驱动程序:
下载适用于 SQL Server 的 Microsoft PHP 驱动程序:
该文件是一个自解压可执行文件,因此只需使用 7zip 或 WinRAR 并将文件解压到您选择的文件夹中。我们现在需要决定选择哪个驱动程序来匹配您的 PHP 安装。
PHP 5.3.5 有四种不同的风格:
要了解您安装的版本,请打开 snapshot.txt
文件,该文件与 php.exe
、php-cgi.exe< 位于同一文件夹中
等。不要使用 notepad.exe,因为该文件在开始时仅使用换行符 (\n
) 作为行尾(unix 格式),而记事本会将它们拼成一行。
在文件中,您将看到一行(在第 6 行附近,或者在您使用记事本的第 1 行中间附近)以:Build:
:
Build: D:\php-sdk\snap_5_3\vc9\x86\obj\Release - non-threadsafe, VC9 buildBuild: D:\php-sdk\snap_5_3\vc6\x86\obj\Release - non-threadsafe, VC6 buildBuild: D:\php-sdk\snap_5_3\vc9\x86\obj\Release_TS - threadsafe, VC9 buildBuild: D:\php-sdk\snap_5_3\vc6\x86\obj\Release_TS - threadsafe, VC6 build
这告诉我们您正在运行的 PHP 版本。
从您提取 MS SQL PHP 驱动程序的文件夹中,选择与正在使用的 PHP 版本相匹配的驱动程序(如果您不使用 PDO,则无需复制 php_pdo_
驱动程序):
PHP 5.3.5 Non-threadsafe VC9: php_sqlsrv_53_nts_vc9.dll, php_pdo_sqlsrv_53_nts_vc9.dllPHP 5.3.5 Non-threadsafe VC6: php_sqlsrv_53_nts_vc6.dll, php_pdo_sqlsrv_53_nts_vc6.dllPHP 5.3.5 Threadsafe VC9: php_sqlsrv_53_ts_vc9.dll, php_pdo_sqlsrv_53_ts_vc9.dllPHP 5.3.5 Threadsafe VC6: php_sqlsrv_53_ts_vc6.dll, php_pdo_sqlsrv_53_ts_vc6.dll
假设您的 PHP 安装位于 C:\PHP
中,将这些文件复制(不要移动)到您的 C:\PHP\EXT
文件夹中。
打开 C:\PHP\PHP.INI
并找到文件的 Dynamic Extensions
部分并添加:
extension=php_sqlsrv_53_nts_vc9.dllextension=php_pdo_sqlsrv_53_nts_vc9.dll <-- optional
最后,要确保 PHP 可以找到这些扩展,请确保 C:\PHP\PHP.INI
中的 extension_dir
指令设置为 C:\PHP\EXT
:
extension_dir = C:\PHP\ext
重新启动 IIS 并调用 phpinfo()
。如果一切顺利,您应该会看到:
如果您还加载了 PDO 驱动程序,您应该会看到:
关于php - IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425322/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!