Reputation: 809
I'm trying to connect to a Microsoft SQL Server 2008 R2 database using a PHP application in NetBeans 8.0.1. I have installed XAMP 1.8.2 and PHP 5.4.31 on Windows XP. The Apache server is setup properly and I can reach the XAMPP config page here: http://localhost:1337/index.php.
I have correctly configured the Microsoft SQL Server Driver (SQLSRV) for PHP...I downloaded the following files: php_sqlsrv_54_ts.dll php_pdo_sqlsrv_54_ts.dll I added the extensions to the php.ini file and restarted the Apache service.
I have a SQL Server named: INTERACT-21292F\SQLEXPRESS (name found in properties of SQL Server Management Studio) and SQLExpress service is listening on port 1433...Here is my index.php file:
<?php
$serverName = "INTERACT-21292F\SQLEXPRESS, 1433";
$connectionInfo = array("Database" => "GDMediaDB", "UID" => "blah", "PWD" => "blah");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if (!$conn) {
echo("Something went wrong while connecting to MSSQL");
} else {
echo "Connection Established";
}
?>
output: Something went wrong while connecting to MSSQL.
I am unable to make a connection to the database...Why is this happening?
EDIT: Result of var_dump(sqlsrv_errors()):
array (size=2)
0 =>
array (size=6)
0 => string 'IMSSP' (length=5)
'SQLSTATE' => string 'IMSSP' (length=5)
1 => int -49
'code' => int -49
2 => string 'This extension requires the ODBC Driver 11 for SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712' (length=184)
'message' => string 'This extension requires the ODBC Driver 11 for SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712' (length=184)
1 =>
array (size=6)
0 => string 'IM002' (length=5)
'SQLSTATE' => string 'IM002' (length=5)
1 => int 0
'code' => int 0
2 => string '[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified' (length=91)
'message' => string '[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified' (length=91)
UPDATE:
I've installed the correct version of XAMPP(v. 1.6.4 comes with PHP 5.2.4 which is compatible with Windows XP). The problem now is that the SQL Server driver extensions fail to load. I simply download the drivers and place them in the xampp/php/ext/ folder and update the php.ini file to include:
extension=php_pdo_sqlsrv_52_ts_vc6.dll
extension=php_sqlsrv_52_ts_vc6.dll
When I open http://localhost:1337/ and run phpInfo() the sqlsrv extensions do not show up...
How do I correctly install SQL Server drivers for PHP 5.2.4?
Upvotes: 1
Views: 5260
Reputation: 809
Problem solved... The first answer is to install the correct SQL Server drivers, which may force you to use an older version of PHP, XAMPP, and Apache Web Server...info can be found here;
For me it was necessary to install an older version of XAMPP, the most recent release for my system (WinXP, PHP 5.2.4) is XAMPP 1.6.4, which can be found here. Find the most compatible version of XAMPP for your system by checking out this article. Be sure you choose the most recent XAMPP release that is compatible with your version of PHP.
The next problem was the installation of SQL Server drivers. It turns out that the php configuration file(php.ini) can be found in two places in the XAMPP 1.6.4 installation directory. The first location is D:/xampp/php/php.ini, which is the file that the documentation and all forums suggest you modify in order to add the extensions...however, it was necessary to modify the php configuration file found in the Apache bin directory(D:/xamp/apache/bin/php.ini), from which XAMPP 1.6.4 is loading the php configuration file.
The topmost table of the phpInfo() page indicates the location of the loaded php configuration file. The table key is: Loaded Configuration File.
Upvotes: 1