Connection between MSSQL and PHP 5.3.5 on IIS is not working

前端 未结 2 899
陌清茗
陌清茗 2020-12-07 23:31

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

相关标签:
2条回答
  • 2020-12-08 00:04

    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

    0 讨论(0)
  • 2020-12-08 00:19

    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
    
    0 讨论(0)
提交回复
热议问题