sqlsrv drivers doesn't appear on a WAMP server phphinfo() after adding the extension entries in the php.ini file

亡梦爱人 提交于 2019-12-10 04:26:47

问题


I wanted to setup a database connection from PHP to SQL server 2012.I have a wamp server(64 bit) set up on a windows machine(64 bit) with PHP 5.5.12 and on the same machine I have SQL server 2012 installed.

Extracted sqlsrv drivers from official_link

Copied the extracted drivers php_sqlsrv_55_ts.dll, extension = php_pdo_sqlsrv_55_ts.dll to php\ext folder, and then changed the php.ini file to include the extensions

extension = php_sqlsrv_55_ts.dll; extension = php_pdo_sqlsrv_55_ts.dll;

Now I tried

<?php
  phpinfo();
 ?>

I see the following information without any SQL server information in it.

Don't seem to have configured SQL server connection successfully. Could some one please guide me on what I am missing here.


回答1:


Check the php error log (c:\wamp\logs\php_error.log). I had the same setup (64bit WAMP/PHP 5.5.12) and same missing sqlsrv reference in phpinfo and I got this error in my log:

PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_pdo_sqlsrv_55_ts.dll' - %1 is not a valid Win32 application. in Unknown on line 0

The solution was to install the 64bit version of the sqlsrv drivers. I found the unofficial 64bit drivers through http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

Warning: In my testing I found these 64bit PHP_PDO_SQLSRV extension 10 times slower than when using PHP_PDO_ODBC.




回答2:


64 bit WAMP server was not able to connect using the drivers extension = php_sqlsrv_55_ts.dll; extension = php_pdo_sqlsrv_55_ts.dll;

So, I installed a 32 bit version of the WAMP server and it works fine now.




回答3:


I am visiting this thread and i think this might help full for you and other with the same issue: How can I install pdo_sqlsrv on my windows 2008 Server 2008 R2?

The PDO Extension is not the same as the native driver Microsoft is offering. For PDO you must enable

extension=php_pdo_mssql.dll in your php.ini.

{Normally this file (php_pdo_mssql.dll) should be in your PHP extension-directory (C:...\php\ext). If it's not there you can download PHP from http://windows.php.net/download/ and just take the extension from a package there (take one that correspond with your PHP version of course)}.

Above is taken from PDO MSSQL Server - Driver not found read for more details. i have the same issue foe linux and i have saved all the pages thats why i am quoting for you help.

if all above didn't work for you then:


On the php.net it is listed that

On Windows, PDO_ODBC is built into the PHP core by default. It is linked against the Windows ODBC Driver Manager so that PHP can connect to any database cataloged as a System DSN, and is the recommended driver for connecting to Microsoft SQL Server databases. http://php.net/manual/en/ref.pdo-odbc.php

You can connect to mssql server using odbc drivers as i have never connect by my self from windows i use to do it through linux using freeTds, following pages might help you

  1. http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/
  2. Connect PHP to MSSQL via PDO ODBC
  3. PHP to SQL Server without ODBC or MSSQL support


来源:https://stackoverflow.com/questions/27008506/sqlsrv-drivers-doesnt-appear-on-a-wamp-server-phphinfo-after-adding-the-exten

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!