In this article I’ll show you how to install the Microsoft SQL Server Driver for PHP 7+. This makes the use of an SQL Server database back-end for your PHP website easy. If you want to communicatie with SQL Server using PHP you need to rely on some additional software and PHP extensions.
To let PHP communicate with an SQL Server database you need additional software: ODBC drivers, and the PHP SQLSRV extension. You have to use the SQLSRV API functions to connect to an MS SQL Server database from PHP. Or PDO of course…
Install sqlsrv driver for PHP 8.2 / 8.3 using PIE – PHP Installer for Extensions
With the deprecation of PECL in favor of PIE (PHP Installer for Extensions), updating your setup process is essential for keeping your stack modern and maintainable.
In PHP 8.2 and PHP 8.3, installing C-based extensions via PIE has become the new standard across the PHP ecosystem. To connect PHP applications to Microsoft SQL Server 2022 or Microsoft SQL Server 2025, Microsoft provides official packages for the sqlsrv and pdo_sqlsrv drivers. Before compiling or enabling these extensions, ensure that the official Microsoft ODBC Driver for SQL Server (such as ODBC Driver 18) is installed on the host system, as the PHP extension relies on it for low-level protocol and encryption handling.
Using PIE simplifies the extension build process compared to legacy PECL workflows. Once you run the PIE installation commands for the drivers, simply reference the compiled .dll (or .so on Linux) files in your php.ini configuration and restart your IIS Application Pool or Apache service to activate full SQL Server support.
# 1. Install the Microsoft ODBC Driver 18 for SQL Server (Prerequisite)
# Download the MSI installer from Microsoft and run a silent installation:
msiexec.exe /i msodbcsql18.msi /qn IACCEPTMSODBCSQLLICENSETERMS=YES
# 2. Install the Microsoft SQL Server drivers via PIE (PHP Installer for Extensions)
pie install php/sqlsrv
pie install php/pdo_sqlsrv
# 3. Enable the extensions in your php.ini
Add-Content -Path "C:\php\php.ini" -Value "extension=php_sqlsrv.dll"
Add-Content -Path "C:\php\php.ini" -Value "extension=php_pdo_sqlsrv.dll"
# 4. Restart IIS to apply the new PHP configuration
iisreset
And you’re all done.
For older PHP, Windows Server and SQL Server versions
First you need to download all of this software:
Used version numbers in this post might be outdated, but the post may still hold valuable information.

Required software to install PHP 7 and SQL Server SQLSRV PHP extension
You need the following software, go ahead and download:
- Microsoft® ODBC Driver 11, 13, 13.1, 17 for SQL Server® – Windows: https://www.microsoft.com/en-us/download/details.aspx?id=56567. The Microsoft ODBC Driver for SQL Server provides native connectivity from Windows to Microsoft SQL Server and Windows Azure SQL Database.
- Microsoft Drivers for PHP 7 for SQL Server: https://github.com/Azure/msphpsql/tree/PHP-7.0. The Microsoft Drivers for PHP for SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts.
- Check out the Microsoft Drivers for PHP for SQL Server System Requirements.
On Windows, download the DLL files from SQLSRV or PDO_SQLSRV PECL repository (source). To download and install the most up-to-date ODBC driver version, read Microsoft Docs Microsoft ODBC Driver for SQL Server on Windows and Download ODBC Driver for SQL Server.
SQL Server Native Client (SNAC) 2012
Since the release of ODBC Driver 11 for SQL Server you no longer have to install SQL Server Native Client – or SNAC – 2012.
The Microsoft SQLNCli team blog states:
Microsoft is adopting ODBC as the de-facto standard for native access to SQL Server and Windows Azure SQL Database. We have provided longstanding support for ODBC on Windows and, in the SQL Server 2012 timeframe, released support for ODBC on Linux (Red Hat Enterprise Linux 5 and 6, and SUSE Enterprise Linux). Microsoft is aligning and renaming the previous ODBC drivers as follows:
This change will result in our ODBC drivers for Windows and Linux being better aligned going forward. We hope that this change makes it easier for you to find the right driver for your needs and makes it easier to stay informed of new releases. Today’s availability marks the first combined release for your use.
And the Database Engine Developer Documentation states:
There are no more updates to the ODBC driver in SQL Server Native Client. The successor to the ODBC driver in SQL Server Native Client, called the Microsoft ODBC Driver 11 for SQL Server on Windows, is installed with SQL Server 2014. For more information about the Microsoft ODBC Driver 11 for SQL Server on Windows, see Microsoft ODBC Driver 11 for SQL Server – Windows
Visual Studio C++ 2015 for PHP 7 on Windows Server IIS
To install PHP 7, you need to have Visual Studio C++ 2015, or VC14, installed too. Download and install Visual C++ Redistributable for Visual Studio 2015 if you haven’t done so.
After you’ve downloaded and extracted the software, you need to install it all.
Install ODBC Driver 11, 13, 13.1, 17 for SQL Server To install the ODBC Driver, in your cmd command or PowerShell prompt, simply type:
& msiexec.exe /i c:\path\to\msodbcsql.msi /quiet
Install Microsoft Drivers for PHP 7 for SQL Server This isn’t really an installation, just download the msphpsql-PHP-7.0 zipfile from Github and unzip it. Within the archive you’ll find the folder msphpsql-PHP-7.0/binaries/<x64|x86>/ and two .dll files: php_sqlsrv_7_nts.dll and php_sqlsrv_7_ts.dll.
Pick the one you need for your IIS hosting environment, and copy the file to your PHP ext directory:
unzip msphpsql-PHP-7.0.zip -d msphpsql-temp
copy msphpsql-temp/msphpsql-PHP-7.0/binaries/x86/php_sqlsrv_7_nts.dll c:\php7\ext
To enable the SQLSRV extension in PHP, add to your php.ini file:
extension=php_sqlsrv_7_nts.dll
Install Visual Studio C++ 2015
If you haven’t installed Visual C++ Redistributable for Visual Studio 2015 yet, install both .msi files. PowerShell example:
Start-Process -NoNewWindow c:\path\to\vs2015\vc_redist.x86.exe -argument "/install /quiet" -Wait
Start-Process -NoNewWindow c:\path\to\vs2015\vc_redist.x64.exe -argument "/install /quiet" -Wait
Once everything is installed, the SQLSRV extension for PHP to SQL Server communication is available to your PHP scripts. We need to verify everything is in working condition.
Various software requires various Visual Studio Runtime versions (Microsoft Visual C++ Redistributable). I normally install them all:
- Microsoft Visual C++ 2010 (Service Pack 1) Redistributable
- Visual C++ Redistributable for Visual Studio 2012 Update 4
- Visual C++ Redistributable Packages for Visual Studio 2013
- Microsoft Visual C++ 2015 Redistributable Update 3
- Microsoft Visual C++ Redistributable for Visual Studio 2017
This article is out-dated. Above mentioned Visual Studio Runtimes are no longer necessary, as Microsoft offers an single Microsoft Visual C++ Redistributable for Visual Studio 2022 download. Older versions are still available. See Microsoft Visual C++ Redistributable latest supported downloads for more information.
Test SQLSRV for SQL Server with PHP
The best way (in my opinion) for you to test whether everything in PHP works correctly is on the command line. Really, executing PHP on the prompt is faster and easier than browsing to your phpinfo() script, but of course, you’re free to do so. Verify the extension is loaded.
Just run php-cgi.exe with some parameters, like -v to print out the version:
C:\php7>php-cgi.exe -v
PHP 7.0.5 (cgi-fcgi) (built: Mar 30 2016 10:15:31)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
If something is wrong in your PHP configuration, an application crash notification pops up.
Got WinCache installed and available through a second php.ini file and FastCgi handler (you followed my how to install PHP and Wincache on IIS article 🙂 – be aware: Wincache is deprected), test that one too:
C:\php7>php-cgi.exe -c php.wincache.ini -v
PHP 7.0.5 (cgi-fcgi) (built: Mar 30 2016 10:15:31)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
If all tests succeeded you can continue with connecting to an SQL Server using PHP.
Connect to an SQL Server with PHP using this SQLSRV for PHP 7 test script
Verify everything is working correctly with a PHP test script to connect to SQL Server. I always use a script like the one below to verify the PHP connection with my SQL Server database, and that it’s all working:
<?php
/*
* Follow me on Twitter: @Jan_Reilink
* Please donate: https://www.paypal.me/jreilink
*/
$connectionInfo = array( "UID" => "user", "PWD" => "password", "Database" => "database" );
$link = sqlsrv_connect( "host name", $connectionInfo );
if( $link ) {
echo "Connection established.<br />";
} else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true ) );
}
$sql = "SELECT table_name FROM information_schema.tables";
$stmt = sqlsrv_query( $link, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC ) ) {
echo $row['table_name']."<br />";
}
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
?>
If everything went OK, all available SQL Server tables in your SQL database are printed. See PHP connect to SQL Server for more information.