Как настроить Wampserver для подключения к серверу mssql с помощью PDO?

0

Я пытаюсь подключиться к серверу БД MSSQL, используя PDO. Я загрузил некоторые DLL файлы с веб-страницы Microsoft и скопировал их в папку wampserver wamp \ bin\php\php5.5.12\ext. Затем я редактировал php.ini, который находится в папке wamp\bin\apache\apache2.4.9\bin.

Я добавил следующие строки:

extension=php_pdo_sqlsrv_55_ts.dll
extension=php_sqlsrv_55_ts.dll
;extension=php_sqlsrv_55_nts.dll
;extension=php_pdo_sqlsrv_55_nts.dll

Я выключил wampserver и запустил его снова. Я вижу эти четыре расширения в меню PHP → PHP Extensions, когда я нажимаю значок wampserver tray.

Затем я попытался создать соединение, используя следующий код:

$conn = new PDO('sqlsrv:Server=1.2.3.4,1433;Database=database.mdf', 
                'user', 'password', 
                array(PDO::ATTR_EMULATE_PREPARES => false,
                      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
               );

Когда я вызываю страницу из браузера, я получаю

не удалось найти драйвер

ошибка.

Во-первых, Как я могу подключиться к серверу mssql с PDO? Во-вторых, есть ли какая-то точка, которую я пропустил по поводу инсайтализации и/или конфигурации?

РЕДАКТИРОВАТЬ

Ниже вы можете увидеть раздел расширения файлов php.ini.

extension=php_bz2.dll
extension=php_curl.dll
extension=php_com_dotnet.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
extension=php_shmop.dll
; The MIBS data available in the PHP distribution must be installed. 
; See http://www.php.net/manual/en/snmp.installation.php 
;extension=php_snmp.dll
extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll  
extension=php_pdo_sqlsrv_55_ts.dll
extension=php_sqlsrv_55_ts.dll
;extension=php_sqlsrv_55_nts.dll
;extension=php_pdo_sqlsrv_55_nts.dll

EDIT 2:

Наконец, я обнаружил, что мои файлы dll ara несовместимы с моим текущим wampserver64. Я ищу правильные файлы.

  • 0
    Вы не упоминаете собственный клиент SQL Server, вы его установили? Также было бы интересно узнать, phpinfo() ли phpinfo() драйвер PDO для SQLSRV или нет.
  • 0
    @ÂlvaroG.VicarioÁlvaroG.Vicario нет я не вижу SQLSRV.
Показать ещё 2 комментария
Теги:
sql-server
pdo

3 ответа

1
Лучший ответ

Я удалил WampServer64 и установил WampServer32. Тогда все в порядке.

Мой объект подключения

$conn = new PDO('sqlsrv:Server='.$host.';Database=' . $db, $user, $pass, 
                array(
                      PDO::ATTR_EMULATE_PREPARES => false,
                      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
                     )
               );

Есть еще один момент: я случайно набрал расширение .mdf после имени базы данных, которого не должно быть. Потому что, если я напишу, я получу

28000 - SQLSTATE [28000]: [Microsoft] [драйвер ODBC 11 для SQL Server] [SQL Server] Ошибка входа для пользователя "zkanoca_dbuser".

ошибка.

0

У меня есть сервер Windows, где я запускаю PHP, я просто проверил здесь расширения, которые я включил:

extension=php_mssql.dll
extension=php_pdo.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll #(might not need it)

И ваше соединение будет выглядеть так:

$conn = new PDO('mssql:host=1.2.3.4;dbname=database', 'user', 'password');

Надеюсь это поможет.

  • 0
    У меня не было этих файлов. Я скачал и скопировал их в папку ext, а затем набрал их имена в файле php.ini. Я получаю ту же ошибку: драйвер не найден
  • 0
    @zkanoca Если драйвер не найден, значит, он не включен правильно, вам может потребоваться скачать некоторые dll и поместить их в каталог ext , вы должны использовать phpinfo() для проверки установки, перезапустить apache и перезагрузить сервер
0

Вы должны включить:

extension=php_pdo_mssql.dll

в вашем php.ini.

  • 0
    такого расширения нет.
  • 0
    Попробуйте с этим: extension=php_pdo_sqlsrv_53_ts.dll

Ещё вопросы

Сообщество Overcoder
Наверх
Меню