IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接无法正常工作

发布于 2024-10-27 07:11:52 字数 386 浏览 1 评论 0原文

我最近安装了 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。

这个问题是我最后一次尝试,有人可以帮忙吗?

I recently installed IIS, PHP 5.3.5 and MySQL, and had it all working.

I then has a requirement for MS SQL as well, and what I thought would be an easy task, is now driving me crazy and I can't figure out how to make it work.

According to php_info() the MS SQL drivers aren't loading.

I downloaded php_mssql.dll and enabled it in php.ini but it didn't work. I found out that the new version of PHP uses a different dll. So I downloaded the new one, put that in the ext folder, and updated the php.ini, but still no luck.

php_info() still isn't showing the drivers are loaded.

I am about to uninstall IIS and PHP, and install Apache, which I've installed before.

This question is my last attempt, can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微凉 2024-11-03 07:11:52

这是我不久前写的客户常见问题解答的片段,旨在帮助我们的专用托管客户启动 PHP 并与 MS SQL 驱动程序一起运行。它可能会重复上面评论中已经传授的一些知识,但它的完整性也可能会帮助其他人从头开始:

注意: 显然,自从我写这篇文章以来,PHP 版本号已经发生了一些变化,但一般原则仍然适用。


安装先决条件:
Microsoft Drivers for PHP for SQL Server 需要 SQL Native Client:

Microsoft SQL Server 2008 R2 Native Client X64 - 适用于 64 位 Windows

Microsoft SQL Server 2008 R2 Native Client X32 - 适用于 32 位 Windows< /p>

下载并安装与您的系统匹配的 Native Client 驱动程序。

PHP MS SQL 驱动程序:

下载适用于 SQL Server 的 PHP 的 Microsoft 驱动程序:

Microsoft 驱动程序对于 PHP 对于 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.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 build
Build: D:\php-sdk\snap_5_3\vc6\x86\obj\Release - non-threadsafe, VC6 build
Build: D:\php-sdk\snap_5_3\vc9\x86\obj\Release_TS - threadsafe, VC9 build
Build: 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.dll
PHP 5.3.5 Non-threadsafe VC6: php_sqlsrv_53_nts_vc6.dll, php_pdo_sqlsrv_53_nts_vc6.dll
PHP 5.3.5 Threadsafe VC9: php_sqlsrv_53_ts_vc9.dll, php_pdo_sqlsrv_53_ts_vc9.dll
PHP 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.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll   <-- optional

最后,为了确保 PHP 可以找到这些扩展,请确保 < C:\PHP\PHP.INI 中的 code>extension_dir 指令设置为 C:\PHP\EXT

extension_dir = C:\PHP\ext

重新启动 IIS 并调用 phpinfo( )。如果一切顺利,您应该看到:

在此处输入图像描述

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

在此处输入图像描述

This is a snippet from a customer FAQ I wrote up a wee while ago to help our dedicated hosting customers get PHP up and running with the MS SQL Drivers. It may duplicate some knowledge already imparted in the comments above, but it's completeness may also help others starting from scratch:

Note: Clearly the PHP version numbers have moved on a bit since I wrote this but the general principles still apply.


Installation Pre-requisite:
The SQL Native Client is required for the Microsoft Drivers for PHP for SQL Server:

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

Download and install the Native Client driver that matches your system.

PHP MS SQL Drivers:

Download the Microsoft Drivers for PHP for SQL Server:

Microsoft Drivers for PHP for SQL Server

The file is a self-extracting executable so just use 7zip or WinRAR and extract the files to a folder of your choice. We now need to decide which driver to choose that matches your PHP installation.

PHP 5.3.5 comes in four different flavours:

  • PHP 5.3.5 Non-threadsafe VC9
  • PHP 5.3.5 Non-threadsafe VC6
  • PHP 5.3.5 Threadsafe VC9
  • PHP 5.3.5 Threadsafe VC6

To tell which version you have installed open the snapshot.txt file which lives in the same folder as php.exe, php-cgi.exe etc. Don't use notepad.exe because the file uses just line feed (\n) for line ends (unix format) at the start and notepad mangles these into a single line.

In the file you will see a line (around line 6, or near the middle of line 1 of you did use notepad) starting with: Build::

Build: D:\php-sdk\snap_5_3\vc9\x86\obj\Release - non-threadsafe, VC9 build
Build: D:\php-sdk\snap_5_3\vc6\x86\obj\Release - non-threadsafe, VC6 build
Build: D:\php-sdk\snap_5_3\vc9\x86\obj\Release_TS - threadsafe, VC9 build
Build: D:\php-sdk\snap_5_3\vc6\x86\obj\Release_TS - threadsafe, VC6 build

This tells us what version of PHP you're running.

From the folder you extracted the MS SQL PHP drivers, choose the driver(s) that matches the version of PHP being used (if you're not using PDO then you don't need to copy the php_pdo_ drivers):

PHP 5.3.5 Non-threadsafe VC9: php_sqlsrv_53_nts_vc9.dll, php_pdo_sqlsrv_53_nts_vc9.dll
PHP 5.3.5 Non-threadsafe VC6: php_sqlsrv_53_nts_vc6.dll, php_pdo_sqlsrv_53_nts_vc6.dll
PHP 5.3.5 Threadsafe VC9: php_sqlsrv_53_ts_vc9.dll, php_pdo_sqlsrv_53_ts_vc9.dll
PHP 5.3.5 Threadsafe VC6: php_sqlsrv_53_ts_vc6.dll, php_pdo_sqlsrv_53_ts_vc6.dll

Assuming your PHP installation lives in C:\PHP, copy (DON'T MOVE) these files to your C:\PHP\EXT folder.

Open C:\PHP\PHP.INI and locate the Dynamic Extensions part of the file and add:

extension=php_sqlsrv_53_nts_vc9.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll   <-- optional

Finally, to be sure that PHP can find these extensions, ensure the extension_dir directive in C:\PHP\PHP.INI is set to C:\PHP\EXT:

extension_dir = C:\PHP\ext

Restart IIS and call phpinfo(). If all is well you should see:

enter image description here

And if you also loaded the PDO driver you should see:

enter image description here

寒冷纷飞旳雪 2024-11-03 07:11:52

上面提到的:

扩展名=php_sqlsrv_53_nts_vc9.dll
扩展=php_pdo_sqlsrv_53_nts_vc9.dll

我发现的内容不正确。

因此,很可能是:

extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll

The above mentioned:

extension=php_sqlsrv_53_nts_vc9.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll

what I found is incorrect.

Therefore, it is likely to be:

extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文