gpt4 book ai didi

php - IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接不起作用

转载 作者:IT王子 更新时间:2023-10-29 00:15:52 29 4
gpt4 key购买 nike

我最近安装了 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 驱动程序:

Microsoft Drivers for PHP for SQL Server

该文件是一个自解压可执行文件,因此只需使用 7zip 或 WinRAR 并将文件解压到您选择的文件夹中。我们现在需要决定选择哪个驱动程序来匹配您的 PHP 安装。

PHP 5.3.5 有四种不同的风格:

  • PHP 5.3.5 非线程安全 VC9
  • PHP 5.3.5 非线程安全 VC6
  • PHP 5.3.5 线程安全 VC9
  • PHP 5.3.5 线程安全 VC6

要了解您安装的版本,请打开 snapshot.txt 文件,该文件与 php.exephp-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()。如果一切顺利,您应该会看到:

enter image description here

如果您还加载了 PDO 驱动程序,您应该会看到:

enter image description here

关于php - IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425322/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com