Как мне успешно использовать PDO с моим ODBC для MSSQL? - PullRequest
0 голосов
/ 25 июня 2018
  • Windows Server 2016, 64-разрядная версия (полностью обновлено)
  • WAMP / 3.1.3 (Win32)
  • Apache / 2.4.33 (Win32)
  • PHP/7.2.4 (Win32)

Я пытаюсь подключиться к своей базе данных на SQL Server, но, похоже, соединение не работает.Я перепробовал несколько подходов, скачал файлы, включил расширения, но ни один из них, похоже, не работает.Я установил, что SQL Server имеет именованные каналы и что удаленные подключения разрешены.Я также подтвердил, что он работает с паролем и именем пользователя:

<?php

$driver='{ODBC Driver 17 for SQL Server}';
/* $driver='{ODBC Driver 13 for SQL Server}'; */
/* $driver='{ODBC Driver 11 for SQL Server}'; */
$dsn='phpodbc11';
$hostname='host01';
$database='data01';
$username='root';
$password='pass123';

$conn = new PDO("odbc:$dns")
$conn = new PDO("dblib:host=$hostname;dbname=$database", $username,$password);
$conn = new PDO("sqlsrv:Server=$hostname;Database=$database", $username, $password);
$conn = new PDO("odbc:Driver=$driver;Server=$hostname;Database=$database", $username, $password);

?>

Drivers Loaded on the Server System DSNs loaded

Расширения php.ini:

  • расширение = pdo_odbc
  • расширение = php_mysqli.dll
  • расширение = php_ldap.dll
  • расширение = php_pdo_sqlsrv_72_ts_x86.dll
  • extension = php_sqlsrv_72_ts_x86.dll

Ошибки, которые я получаю для каждой из вышеупомянутых новых попыток PDO

* SQLSTATE [IM002] SQLConnect: 0 [Microsoft] [ODBCДиспетчер драйверов] Не найдено имя источника данных и не указан драйвер по умолчанию

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

SQLSTATE [IMSSP]: для этого расширения требуется, чтобы драйвер Microsoft ODBC для SQL Server взаимодействовал с SQL Server.Чтобы загрузить драйвер ODBC для SQL Server для x86, перейдите по следующему URL-адресу: https://go.microsoft.com/fwlink/?LinkId=163712

SQLSTATE [IM002] SQLDriverConnect: 0 [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию *

1 Ответ

0 голосов
/ 18 июля 2018

Попробуйте, это работает для меня:
1.- Выполнить драйверы PDO / Версия 3_2 / SQLSRV32.exe
Загрузить из Драйверы PDO

First see compatibillity in [Drivers for PHP for SQL Server][2]

2.- Скопируйте эти библиотеки DLL в каталог WAMP

  • php_sqlsrv_56_ts.dll
  • php_pdo_sqlsrv_56_ts.dll
  • php_pdo_sqlsrv_56_nts.dll
1017 * 1017.- Добавьте эти дополнительные строки в раздел php.ini. Динамические расширения:
extension=php_sqlsrv_56_ts.dll  
extension=php_pdo_sqlsrv_56_ts.dll  
extension=php_pdo_sqlsrv_56_nts.dll  

4.- Перезапустите apache WampServer
5.- Установите ODBC 11 на вашем компьютере:
ODBC

Run: ODBC/msodbcsql.msi  

6.- Смотрите phpinfo.php, теперь вы должны быть такими:

PDO  
PDO support enabled  
PDO drivers mysql, sqlite, **sqlsrv**  

pdo_sqlsrv  
pdo_sqlsrv support  enabled  
Directive   Local Value Master Value  
pdo_sqlsrv.client_buffer_max_kb_size    10240   10240  
pdo_sqlsrv.log_severity 0   0  

sqlsrv  
sqlsrv support  enabled  
Directive   Local Value Master Value  
sqlsrv.ClientBufferMaxKBSize    10240   10240  
sqlsrv.LogSeverity  0   0  
sqlsrv.LogSubsystems    0   0  
sqlsrv.WarningsReturnAsErrors   On  On  

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...