Бортовой журнал Ктулху

Настройка в xammp работы PDO с MSSQL

PHP скрипт на Xammp не хотел работать с M$ SQL. Стал разбираться в причинах этого, ведь как бы PDO, значит должно работать со всеми базами.

Оказалось, не может.

Стал разбираться, оказалось не хватает нужных библиотек.

 

Отсюда [https://www.microsoft.com/en-us/download/details.aspx?id=20098] скачал и установил SQLSRV32.EXE (на самом деле там не установка а самораспаковывающийся архив, в нем библиотеки, которые нужно поместить в папку с либами PHP: c:\xampp\php\).

Для PHP7 - версия 4.0, для 5.6 - версия 3.2.

В php.ini добавил такие строки:

extension=php_pdo_sqlsrv_56_ts.dll
extension=php_sqlsrv_56_ts.dll

Кстати, там может быть _ts_ а может и _nts_, например php_pdo_sqlsrv_7_nts_x86.dll, нужно поэкспериментировать с разными и не забывайте выбрать либы под свою ОСь (64/32).

Если ничего не помогло, то советую почитать этот форум [http://forums.devshed.com/php-development-5/trying-connect-php-5-6-8-sql-server-2008-r2-969019.html].

Но и это еще не все.

При попытке №5 получил ошибку:


\index.php:14:string 'Failed to get DB handle: SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712
'(length=268)

 

Как оказалось, не хватало драйвера ODBC.

Скачать отсюда: https://www.microsoft.com/ru-ru/download/details.aspx?id=36434

Установить.

Для надежности еще раскомментировать в php.ini

extension=php_pdo_odbc.dll

Что нужно - заработало. Было много другоих ошибок, но это, как говорится, "совсем другая история".