Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.0-BETA4
-
Fix Version/s: 2.0.0-RC1-RC3
-
Component/s: Drivers
-
Labels:None
-
Environment:Windows 7, Apache 2.1, PHP 5.3.3, Microsoft SQL Server 2008 Enterprise Edition
Description
Problem:
Currently, the _constructPdoDsn() for the PDOSqlsrv driver works fine only if the host provided is: local or localhost.
If using an IP address, this breaks. Reason is because _constructPdoDsn() applies ( and ) around the host.
$dsn = 'sqlsrv:server=(';
if (isset($params['host'])) {
$dsn .= $params['host'];
}
$dsn .= ')';
This is fine for when $params['host'] = 'local'; because I believe local is a name pipe (I think) and to properly use it you need to add the brackets around it
However if $params['host'] = '127.0.0.1'; this breaks!
Fix:
Get rid of the forced brackets
$dsn = 'sqlsrv:server=';
if (isset($params['host'])) {
$dsn .= $params['host'];
}
That way, when supplying local as a host, you have to enter (local) (which makes more sense as that's how you would do it normally in other applications).
This is fixed in master.