Farsh
~ on ~ high ~ wave ~
windows, mssql, pdo, pdo_mssql и убейте меня
** перекиньте плиз в раздел windows, случайно сюда добавил **
Я просто заканался.
И так, дано:
windows ( прямо сейчас семерка, а вообще server 2003 )
microsoft sql server express 2005
Надо:
подконнектиться через PDO к этому mssql серверу
Хочется:
найти человека, который это сделал
И так, описываю шаги:
1) скачал php 5.3.1 zip архив
2) распаковал в C:\php\php_5.3
3) зашел в папку
4) вижу, что php.ini там нет; переименовываю php.ini-development в php.ini; extension_dir = 'ext'; все extension's отключены
5) php.exe -v не ругается; показывает, что он и есть v5.3.1;
6) php -m показывает, что внутри сидит PDO
7) активируем ext php_mssql ( для начала )
8) php.exe -v не ругается, вроде все норм
9) запускаем скрипт, содержащий
конечно же, все еррор репортинг на on, E_ALL | E_STRICT, лог ошибок on
10) результат - консоль орет, что cli error. Лог пуст.
Отсюда первый вопрос: тестеры php вообще проверяют работу всего этого на windows ?
11) Убираем php_5.3 нахрен
12) Делаем пункты 1-9 для php 5.2; замечаем, что pdo идет как отдельный модуль
13) 10 пункт показывает нам, что все отлично
14) активируем модули PDO и pdo_mssql
15) запускаем скрипт, содержащий
16) cli error, ниче не пашет, лог пуст ( полная аналогия php 5.3 + mssql_connect )
17) и что делать ?
Также была замечана уличная магия:
до этого тестировал на подобии этого, и у меня просто не хотел запускаться php с pdo, требовал файла msvcr71.dll ( качал и кидал в папку с php ). Далее просто не коннектилось по каким-то блаблабла причинам, полечилось заменой файла ntwdblib.dll, но только для mssql_connect, PDO просто не коннектился: большое ожидание + ошибка, что с сервером не удалось соединиться.
Сейчас меня этиже дистрибутивы php ничего не просили, хотя тот самый msvcr71.dll я не кидал в какие-либо системные папки.
Вот расскажите, кто тут мудак ?
Мне нужно именно pdo dblib, то есть pdo_mssql. Почему ? Потому что уже есть готовый проект, использующий doctrine, работающий на pdo_mysql. Все идеально ( и на win тоже ). Но надо обязательно перейти на mssql. Pdo odbc коннектит отлично, только с доктрине ведет себя не так, как надо. Я надеялся, что такого гемора у меня точно не будет, когда придется менять на mssql, но увы ..
** перекиньте плиз в раздел windows, случайно сюда добавил **
Я просто заканался.
И так, дано:
windows ( прямо сейчас семерка, а вообще server 2003 )
microsoft sql server express 2005
Надо:
подконнектиться через PDO к этому mssql серверу
Хочется:
найти человека, который это сделал
И так, описываю шаги:
1) скачал php 5.3.1 zip архив
2) распаковал в C:\php\php_5.3
3) зашел в папку
4) вижу, что php.ini там нет; переименовываю php.ini-development в php.ini; extension_dir = 'ext'; все extension's отключены
5) php.exe -v не ругается; показывает, что он и есть v5.3.1;
6) php -m показывает, что внутри сидит PDO
7) активируем ext php_mssql ( для начала )
8) php.exe -v не ругается, вроде все норм
9) запускаем скрипт, содержащий
PHP:
var_dump(mssql_connect('NOTEBOOK\SQLEXPRESS'));
10) результат - консоль орет, что cli error. Лог пуст.
Отсюда первый вопрос: тестеры php вообще проверяют работу всего этого на windows ?
11) Убираем php_5.3 нахрен
12) Делаем пункты 1-9 для php 5.2; замечаем, что pdo идет как отдельный модуль
13) 10 пункт показывает нам, что все отлично
14) активируем модули PDO и pdo_mssql
15) запускаем скрипт, содержащий
PHP:
$dsn = 'mssql:host=NOTEBOOK\SQLEXPRESS;dbname=dbname';
try {
$pdo = new PDO($dsn);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
17) и что делать ?
Также была замечана уличная магия:
до этого тестировал на подобии этого, и у меня просто не хотел запускаться php с pdo, требовал файла msvcr71.dll ( качал и кидал в папку с php ). Далее просто не коннектилось по каким-то блаблабла причинам, полечилось заменой файла ntwdblib.dll, но только для mssql_connect, PDO просто не коннектился: большое ожидание + ошибка, что с сервером не удалось соединиться.
Сейчас меня этиже дистрибутивы php ничего не просили, хотя тот самый msvcr71.dll я не кидал в какие-либо системные папки.
Вот расскажите, кто тут мудак ?
Мне нужно именно pdo dblib, то есть pdo_mssql. Почему ? Потому что уже есть готовый проект, использующий doctrine, работающий на pdo_mysql. Все идеально ( и на win тоже ). Но надо обязательно перейти на mssql. Pdo odbc коннектит отлично, только с доктрине ведет себя не так, как надо. Я надеялся, что такого гемора у меня точно не будет, когда придется менять на mssql, но увы ..