Страница 1 из 1

PHP 5.2.17 + MS SQL Server

Добавлено: 23 янв 2014, 02:10
AVL
Доброй ночи! Прошу помощи.

Установил Открытый-сервер — все в порядке, запустился, работает.
Проблема заключается в наличии необходимость работать с MS SQL, с которой на "не будет ли любезен многоуважаемый джин" :-)

Путем испытаний выяснил, что необходимо в настройках сервера включить версию PHP 5.2.17. Включил.

В результате чего, PHP рассказывает о следующем:
Fatal error: Call to undefined function sqlsrv_connect() in www\testmssql\index.php on line 4
Вот код этого файла
<?php
$serverName = "***";
$connectionInfo = array( "Database"=>"***", "ReturnDatesAsStrings" => false);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   echo "Could not connect.\n";
   die( print_r( sqlsrv_errors(), true));
}

$tsql = ""; //Запрос

$stmt = sqlsrv_query( $conn, $tsql);

if ( $stmt === false ) {
   echo "Error in statement preparation/execution.\n";
   die( print_r( sqlsrv_errors(), true));
}

sqlsrv_fetch( $stmt );

// retrieve date as string
$date = sqlsrv_get_field( $stmt, 0, SQLSRV_PHPTYPE_STRING("UTF-8"));

if( $date === false ) {
   die( print_r( sqlsrv_errors(), true ));
}

echo $date;

sqlsrv_close( $conn);
?>
Отчаялся уже :-(
Сам Маковод, поэтому с новой Windows 8, на которой установлен Открытый-сервер, не знаю что делать, и в каком направлении дальше копать.

Добавлено спустя 5 минут 11 секунд:
До кучи.

Читал тут: http://habrahabr.ru/sandbox/43781/

MS SQL Server Management Studio — установлена.

Добавлено: 23 янв 2014, 09:14
Asmodey
Надо поставить библиотеки доступа к ms sql
http://ru2.php.net/manual/en/mssql.requirements.php

Там СамБиллГейтс теперь их делает.

Добавлено: 23 янв 2014, 13:52
AVL
Asmodey, установил msodbcsql.exe с сайта MS

Перезапустил сервак, но результата это не вызвало.
Как можно убедиться, что все компоненты установлены?

Правильно ли я понима?
Библиотека установилась куда-то в систему.
Правильно ли я понимаю, что Открытый-сервер это должен как-то сам узнать, что библиотека есть)))

Нужен ли перезапуск компа после установки драйвера?

Добавлено: 23 янв 2014, 19:46
Asmodey
Упс! Проглядел версию пыха.

1. Для 5.2 работа с БиломГейтсом всё уже идёт в поставке пыха. И называется оно - mssql.Там ограничения на версию сервера 2005 или 2008. Для активации достаточно раскоментировать: extension=php_mssql.dll (extension=php_pdo_mssql.dll). По-дефолту оно активно.

2. Для 5.3 и выше. Это теперь делает самолично БГ. Качать и ставить отдельно. http://www.microsoft.com/en-us/download ... x?id=20098
Там расписано что и как. Называется это теперь sqlsrv (видимо Вильям наш считает, что других скл-серверов не бывает). Там указаны ограничения на версию оси и сервера.

3. Хвалят версию 3 сиих дровов. НО оно только под пых 5.3 и выше. А вот там пока ещё раздают версию 2. Там и для 5.2 и для 5.3. Но 2 объявили некошерной и грозятся выпилить линки.

А чем обусловлено использование староватой версии 5.2 ?

Добавлено: 23 янв 2014, 22:16
AVL
Asmodey, благодарю за ответ!

Сейчас налью чай и перейду к унижениям и боли по установке.

На самом деле нужна версия PHP 5.3, но я прочитал о том, что для Открытого-сервера нет модуля, поэтому переключился на версию 5.2 с одной лишь целью — чтобы завелось и смог подключиться. Сейчас у меня ощущение, что с повязкой на глаза, тыкаю пальцем в небо. :-(

Выходит, что мне нужно:
— переключиться в версию 5.3
— установить, указанный вами, драйвер по ссылке
— перезапустить Открытый-сервер
...и должно произойти чудо?

Добавлено: 24 янв 2014, 17:20
Asmodey
Фактически там две dll-ки :) Которые прописываются в расширениях :) Ну и клиент (фактически одна dll-ка).
phpinfo сразу и покажет расширение sqlsrv.
Лучше пользовать его: у старого ограничение на версию сервера и глюки с кодировками - это что столкнулся лично.

Добавлено: 24 янв 2014, 17:27
AVL
Asmodey, какой-то драйвер поставил, но эффекта не дано. Сегодня сделю еще один подход к станку.

Добавлено: 24 янв 2014, 17:47
Asmodey
Для 5.3 в конфиге должны появиться такие строчки
extension=php_sqlsrv_53_ts.dll
extension=php_pdo_sqlsrv_53_ts.dll

Ну и dll-ки должны недалеко лежать :)

Добавлено: 27 янв 2014, 05:40
AVL
Опять 25 :-(

Но обо всем по-порядку:
— перевел сервер на использование версии ПХП 5.3
— установил драйвер в папку ext в соответствующую папку пхп 5.3
— пытался найти php.ini, но оказалось что там их два:
Снимок экрана 2014-01-27 в 5.20.30.png
прописал в оба

— теперь не понятно, работает или нет.

вопрос как протестировать подключился ли драйвер?
в какой именно .ini файл нужно было записывать ссылки на экстеншины?

Добавлено спустя 2 минуты 11 секунд:
Открытый-сервер ссылается вот на такую ошибку:
Fatal error: Call to undefined function sqlsrv_connect() in

Добавлено спустя 12 минут:
Ух, ты!

Нашел еще один PHP-5.3.27_php.ini по адресу: OpenServer\userdata\config
Вставил туда, вот это:
extension=php_sqlsrv_53_ts.dll
extension=php_pdo_sqlsrv_53_ts.dll

Теперь скрипт не ругается и выдает это:
GPIEvent

Добавлено спустя 1 час 2 минуты 26 секунд:
Asmodey, большое спасибо!