2014-11-19 2 views
6

Я хотел настроить подключение к базе данных с PHP на SQL-сервер 2012. У меня есть сервер wamp (64-разрядный) настроен на машине Windows (64 бит) с PHP 5.5.12, и на том же компьютере у меня установлен SQL Server 2012.Драйвер sqlsrv не появляется на сервере WAMP phphinfo() после добавления записей расширения в файле php.ini

экстрагированных SQLSRV драйверы от official_link

скопированные распакованные драйверы php_sqlsrv_55_ts.dll, extension = php_pdo_sqlsrv_55_ts.dll в php\ext папку, а затем изменил файл php.ini включить расширения

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

Теперь я попытался

<?php 
    phpinfo(); 
?> 

Я вижу следующую информацию без какой-либо информации SQL-сервера.

enter image description here

enter image description here

Не похоже, настроены подключения SQL-сервера успешно. Может кто-нибудь, пожалуйста, назовите меня тем, чего я здесь не вижу.

+0

Вы перезапустили все службы и, возможно, даже перезагрузились после внесения изменений? Если нет, сделайте. –

+0

Да, я перезапустил все службы. – user2569524

+0

Вы также загрузили и установили «собственный клиент Microsoft SQL Server 2012» и «Microsoft ODBC Driver 11». Помните, что расширения php не говорят напрямую с базой данных, они общаются с собственным клиентом. См. Раздел «Системные требования» на странице загрузки, приведенной выше. – RiggsFolly

ответ

3

64-разрядный сервер WAMP не смог подключиться с помощью расширения драйверов = php_sqlsrv_55_ts.dll; extension = php_pdo_sqlsrv_55_ts.dll;

Итак, я установил 32-разрядную версию WAMP-сервера, и теперь он отлично работает.

0

Я посещаю эту тему и я думаю, что это могло бы помочь полной для вас и другие с той же проблемой: How can I install pdo_sqlsrv on my windows 2008 Server 2008 R2?

ПДО Extension не такой же, как родной драйвер Microsoft предлагает. Для PDO вы должны включить

extension = php_pdo_mssql.dll в вашем php.ini.

{Обычно этот файл (php_pdo_mssql.dll) должен быть в вашем PHP-расширении-каталоге (C: ... \ php \ ext). Если его там нет, вы можете загрузить PHP с http://windows.php.net/download/ и просто взять расширение из пакета там (возьмите тот, который соответствует вашей PHP-версии, конечно)}.

Выше взято из PDO MSSQL Server - Driver not found для получения более подробной информации. У меня такая же проблема, как и у Linux, и я сохранил все страницы, поэтому я цитирую для вас помощь.

если все выше, не работает для вас, то:


На php.net перечислено, что

В Windows PDO_ODBC встроен в ядро ​​PHP по умолчанию. Он связан с диспетчером драйверов Windows ODBC, чтобы PHP мог подключаться к любой базе данных, каталогизированной как системный DSN, и является рекомендуемым драйвером для подключения к базам данных Microsoft SQL Server. http://php.net/manual/en/ref.pdo-odbc.php

Вы можете подключиться к MSSQL Server с использованием ODBC драйверов, как я никогда не соединиться моим сам из окна я использую, чтобы сделать это с помощью Linux с помощью FreeTDS, следующие страницы могут помочь вам

  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
2

Проверьте журнал ошибок php (c: \ wamp \ logs \ php_error.log). я имел такую ​​же установку (64bit WAMP/PHP 5.5.12) и такой же отсутствующую ссылку SQLSRV в phpinfo и я получил эту ошибку в моем журнале:

PHP Предупреждение: PHP Startup: Невозможно загрузить динамическую библиотеку ' c: /wamp/bin/php/php5.5.12/ext/php_pdo_sqlsrv_55_ts.dll '-% 1 не является действительным приложением Win32. in Unknown on line 0

Решение было установить 64-битную версию драйверов sqlsrv. Я нашел неофициальные 64-битные драйверы через http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

Предупреждение: В моем тестировании я обнаружил, что это 64-битное расширение PHP_PDO_SQLSRV в 10 раз медленнее, чем при использовании PHP_PDO_ODBC.

+0

64-битная (неофициальная версия) работает для меня. – htaghizadeh

+0

64-битная неофициальная версия работала для меня тоже! – Neo

-1

Я не смог исправить это с помощью любого из вышеперечисленных решений или с помощью каких-либо расширений, которые поставляются с моим Windows WAMP Server. Я попробовал PDO_ODBC и другие, и даже нашел Microsoft Official PDO_SQLSRV.

Решение для меня состояло в том, чтобы установить драйверы PDO_SQLSRV с стороннего веб-сайта. Я нашел драйверы через http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

Обычно я не использую DLL со случайных сайтов, но я был в отчаянии, и это сработало для меня. Это может спасти другие многочисленные часы фрустрации.

+0

Просто любопытно, сколько вопросов вы ответите на этот пост? –

+0

Neo, у нас есть политика против повторного размещения одного и того же решения по нескольким вопросам. Это было опубликовано четыре раза. Не могли бы вы удалить три копии? Я попрошу модератора сделать это, но если вы сможете сэкономить на них, они оценят это - они всегда очень заняты. – halfer