Облазил все! То ли лыжи не едут толи я... :shock: Необходимо подключиться через php к удаленному MsSQL серверу. Сделал вроде бы все... - раскоментировал соответствующую строку в php.ini - раздобыл файлик ntwdblib.dll (хотя нужен ли он вообще ?) - даже установил клиента MsSQL 2005 phpinfo(); - тишина как мне быть? выручите пожалуйста!
пожалуй утачню... на другом форуме меня недопоняли проблема в следующем... я писал что вызываю phpinfo() - и тишина, под тишиной я подразумевал, что страница не содержит информации о MsSQL вообще а при вызове функции mssql_connect апач сообщает что не знает такую функцию?
не подключена mssql.dll посмотри откуда берется конф. файл, проверь свой PATH и посмотри лежат ли там этот файл
Недавно я подключал через PHP Interbase 6.0.1 Все прошло удачно. Пришлось лишь установить Interbase client и раскоментировать строку в php.ini mssql.dll лежит там же где и interbase.dll :? что тогда не так? И что вобще нужно сделать, чтобы подключить MsSQL ? только лишь раскомментировать строку в php.ini ?
спасибо! разобрался... не заметил что в директории php лежал сволочь и молчал файлик ntwdblib.dll а скачал я видимо шляпу какую то!
да... разобрался, но всех проблем не решил добился того, чтобы в phpinfo() отображалась связь с библиотекой mssql, но при работе с функцией mssql_connect апач возвращает ошибку Код (Text): mssql_connect() [function.mssql-connect]: Unable to connect to server: думаю целесообразно предоставить код: Код (Text): $host = '10.4.0.70'; $username = 'login'; $password = 'pass'; $db = mssql_connect($host,$username,$password); if (!$db) { echo("ОБЛОМ !!!"); } else { echo("есть контакт !!!!!!!!!!!!!!!!!!!"); } все очень даже бонально. прочитал многое, $host прописывал по разному (с портами и без, через запятую и через двоеточие), кстати порты открыты и sql server их слушает. получилось подключиться через odbc и через Delphi, а вот с mssql_connect - проблема!!! как мне быть?
Попробуйте в имени хоста указать инстанс нейм. Для MSSQL Server 2005 Express Edition с интанс неймом, назначенным по умолчанию Ваш код должен выглядеть примерно так: Код (Text): $host = '10.4.0.70\\SQLExpress';
нашел абсолютно такую же проблему!!! http://www.phpforum.ru/lofiversion/index.php/t4387.html таким образом, как мне кажется, настоящую версию php очень трудно подружить с MS SQL 2005. возможно придется ждать выхода 6-й версии. ИНТЕРЕСНО... что по этому поводу могут сказать сами разработчики? хотя... если посмотреть на оперативность ответов... вряд ли они что-то ответят...
PHP+MSSQL 2005 Ваша проблема решается до банальности просто.... файл ntwdblib.dll должен быть версии не ниже 2000.80.2039.0, размер библиотеки этой версии 290 816 байт. Найти библиотеку можно и в инете, но если надо могу и скинуть.
Столкнулся с проблемой. Скачал библиотеку указанной 2000.80.2039.0 и php отказался вообще работать с MS SQL. Тогда скачал эту библиотеку версии 2000.80.194.0 и все заработало как часы! Осталось только прикрепить сюда обе библиотеки, но как это сделать - непонятно.
Важно указать правильное имя компбтера а не ip или локалхост у меня например выглядит так строка $host = 'MICROSOF-2E84CA\SQLEXPRESS';
Я обращался к MSSQL-серверу по имени, причем имя резолвилось в адрес через /etc/hosts (Linux+Apache+PHP). Сейчас пытаюсь перенести работающий прототип тестового скрипта на IIS, и phpinfo(); выводит какую-то фигню: мол версия mssql == 7.0, такое вобще может быть? И, главное, соединяется с SQL Server 2005 == ОК, только из-за неправильного значения mssql.textsize в php.ini картинку не выдает, и никаких диагностических сообщений об ошибке не выдает. А в свойствах файла php_mssql.dll прописана версия 5.2.0.0, а в других свойствах этого же файла == копирайт 2006го года, из-за чего меня клонит к тягостным раздумьям... Напишите, пожалуйста, как определяли версию библиотеки, и выдайте кусок phpinfo(); для расширения mssql плиз .
Я сегодня тоже воевал с MS SQL Server 2005 (не экспресс). Подключался через PDO. Апач на винде, поэтому согласно официальной документации подключался не через драйвер mssql, как казалось бы логичней, а через ODBC. Как обычно в PHP, не программировал, а изучал чужие баги. Ну кстати скачал последнюю версию ntdblib.dll или как ее там, откоментил в php.ini php_pdo и php_pdo_odbc и на всякий случай php_pdo_mssql. Потратил на изучение этой херни пол дня. Потом не запустилась хранимая пррцедура. Все время говорил какую-то херню "последовательность функций эррор" После долгого гугленья оказалось, что если передается внутрь хранимой процедуры параметр типа datetime, то всегда вылезает такая ошибка, надо в процедуру передавать varchar и внутри процедуры делать для нее convert(varchar->datetime). Только в PHP такое может быть. Я был в шоке. Еще больше часа на этом потерял. Ну ладно все сделал и ошибка перестала появляться. Ну дальше возился, почему вызов хранимой процедуры не производит в базе никаких изменений. Вот просто в мэнеджере все работает, а если ее же с такмми же параметрами запустить через PHP, ничего не происходит. Делал ее и через prepare, потом через query потом через exec с bindValue и просто как строку. И в транзакции и без и так и эдак. Как обычно простые тестовые процедурки работают. Наверное опять какая нибудь херня типа "не пользуйте так, обойдите наш баг вот так". Провозился до конца дня. Короче ничего за целый день не завел и пришел к выводу, что MSSQL для PHP очень не подходящий вариант. По сравнению с Postgres и MySQL, с которыми я работал, самый никчемный вариант. И вообще PHP- херня. Заебал он со своими багами. Бездельники. разогнать их всех уже пора. За последних два года никаких улучшений, а если что-то новое появляется то все в багах. еще хуже чем винда у микрософта.