Saturday, May 25, 2013

sqlsrv.dll, PDO and PHP 5 on Windows via WAMP


Here’s one that had us stumped. We share this knowledge with anybody else who may be suffering from a similar situation. After publishing one of our WebApps to a client’s server, we were hit with an error stating that dblib wasn’t available. The solution was coded in PHP, with Zend Framework on a Centos 5 server. We are now publishing to a Windows Server 2008 machine running SQL Server 2008 and WAMP. Looking into the PHP manual, we realised that dblib was no longer supported on Windows. Instead, Microsoft have provided useful drivers to connect to SQL Server databases, which can be found at http://www.microsoft.com/download/en/details.aspx?id=20098 OK, no problem, we downloaded the folders, copied them to the PHP “ext” folder and configured php.ini with the necessary lines, e.g. extension=php_pdo_sqlsrv_53_ts_vc9.dll But after restarting and checking a page with phpinfo(), we found the extension failed to load every time. It wouldn’t appear. PDO was installed and appearing, the MySQL extension registered fine too. After some investigation, we found the cause… The server contained the 64 bit version of WAMP installed, but the drivers for sqlsrv are only compatible with the 32 bit version. So after removing and installing the 32 bit version, all is well. This worked for us at least. WAMP version was WAMP 2.2, PHP 5.3.8. Server running Windows Server 2008 with SQL Server 2008. Good luck!
This entry was posted in Development by John. Bookmark the permalink.

MS in Computer Science with paid training in USA company