За последние 24 часа нас посетили 21933 программиста и 787 роботов. Сейчас ищут 567 программистов ...

MsSQL 2005 + PHP 5

Тема в разделе "MSSQL", создана пользователем XmarkerX, 19 дек 2007.

  1. XmarkerX

    XmarkerX Активный пользователь

    С нами с:
    19 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    Облазил все! То ли лыжи не едут толи я... :shock:

    Необходимо подключиться через php к удаленному MsSQL серверу.
    Сделал вроде бы все...
    - раскоментировал соответствующую строку в php.ini
    - раздобыл файлик ntwdblib.dll (хотя нужен ли он вообще ?)
    - даже установил клиента MsSQL 2005

    phpinfo(); - тишина

    как мне быть? выручите пожалуйста!
     
  2. XmarkerX

    XmarkerX Активный пользователь

    С нами с:
    19 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    пожалуй утачню... на другом форуме меня недопоняли

    проблема в следующем...
    я писал что вызываю phpinfo() - и тишина,
    под тишиной я подразумевал, что страница не содержит информации о MsSQL вообще
    а при вызове функции mssql_connect апач сообщает что не знает такую функцию?
     
  3. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    не подключена mssql.dll
    посмотри откуда берется конф. файл, проверь свой PATH и посмотри лежат ли там этот файл
     
  4. XmarkerX

    XmarkerX Активный пользователь

    С нами с:
    19 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    Недавно я подключал через PHP Interbase 6.0.1
    Все прошло удачно. Пришлось лишь установить Interbase client и раскоментировать строку в php.ini

    mssql.dll лежит там же где и interbase.dll
    :? что тогда не так?

    И что вобще нужно сделать, чтобы подключить MsSQL ?
    только лишь раскомментировать строку в php.ini ?
     
  5. XmarkerX

    XmarkerX Активный пользователь

    С нами с:
    19 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    спасибо!

    разобрался...
    не заметил что в директории php лежал сволочь и молчал файлик ntwdblib.dll
    а скачал я видимо шляпу какую то!
     
  6. XmarkerX

    XmarkerX Активный пользователь

    С нами с:
    19 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    да... разобрался, но всех проблем не решил

    добился того, чтобы в phpinfo() отображалась связь с библиотекой mssql,
    но при работе с функцией mssql_connect апач возвращает ошибку
    Код (Text):
    1. mssql_connect() [function.mssql-connect]: Unable to connect to server:
    думаю целесообразно предоставить код:

    Код (Text):
    1. $host = '10.4.0.70';
    2. $username = 'login';
    3. $password = 'pass';
    4.  
    5. $db = mssql_connect($host,$username,$password);
    6.     if (!$db) {
    7.       echo("ОБЛОМ !!!");
    8.     } else {
    9.       echo("есть контакт !!!!!!!!!!!!!!!!!!!");
    10.     }
    все очень даже бонально.
    прочитал многое, $host прописывал по разному (с портами и без, через запятую и через двоеточие),
    кстати порты открыты и sql server их слушает.
    получилось подключиться через odbc и через Delphi,
    а вот с mssql_connect - проблема!!!
    как мне быть?
     
  7. agent_ze-t

    agent_ze-t Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    2
    Симпатии:
    0
    Попробуйте в имени хоста указать инстанс нейм. Для MSSQL Server 2005 Express Edition с интанс неймом, назначенным по умолчанию Ваш код должен выглядеть примерно так:
    Код (Text):
    1. $host = '10.4.0.70\\SQLExpress';
     
  8. SelaX

    SelaX Активный пользователь

    С нами с:
    23 янв 2008
    Сообщения:
    19
    Симпатии:
    0
    Заработало? Интересно же...
     
  9. XmarkerX

    XmarkerX Активный пользователь

    С нами с:
    19 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    нашел абсолютно такую же проблему!!!

    http://www.phpforum.ru/lofiversion/index.php/t4387.html

    таким образом, как мне кажется, настоящую версию php очень трудно подружить с MS SQL 2005.
    возможно придется ждать выхода 6-й версии.

    ИНТЕРЕСНО... что по этому поводу могут сказать сами разработчики?
    хотя... если посмотреть на оперативность ответов... вряд ли они что-то ответят...
     
  10. smile.80

    smile.80 Активный пользователь

    С нами с:
    23 сен 2008
    Сообщения:
    3
    Симпатии:
    0
    PHP+MSSQL 2005

    Ваша проблема решается до банальности просто....

    файл ntwdblib.dll должен быть версии не ниже 2000.80.2039.0, размер библиотеки этой версии 290 816 байт.
    Найти библиотеку можно и в инете, но если надо могу и скинуть.
     
  11. starkeen

    starkeen Активный пользователь

    С нами с:
    15 июн 2007
    Сообщения:
    37
    Симпатии:
    0
    Столкнулся с проблемой. Скачал библиотеку указанной 2000.80.2039.0 и php отказался вообще работать с MS SQL. Тогда скачал эту библиотеку версии 2000.80.194.0 и все заработало как часы!
    Осталось только прикрепить сюда обе библиотеки, но как это сделать - непонятно.
     
  12. werd

    werd Активный пользователь

    С нами с:
    2 фев 2009
    Сообщения:
    1
    Симпатии:
    0
    Важно указать правильное имя компбтера а не ip или локалхост

    у меня например выглядит так строка
    $host = 'MICROSOF-2E84CA\SQLEXPRESS';
     
  13. Infra_HDC

    Infra_HDC Активный пользователь

    С нами с:
    11 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    msk.ru
    Я обращался к 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 плиз :).
     
  14. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    эта версия протокола, батенька.
     
  15. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    Я сегодня тоже воевал с 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- херня. Заебал он со своими багами. Бездельники. разогнать их всех уже пора. За последних два года никаких улучшений, а если что-то новое появляется то все в багах. еще хуже чем винда у микрософта.