Продолжаю бороться с GoDaddy.
Итак, shared Windows hosting. Я могу подключиться к MySQL из PHP, и могу подключиться к MS SQL из ASP.NET. А вот из PHP к MySQL не могу: при вызове mssql_connect($host, $user, $password) получаю:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: mydatabase.db.1234543654.hostedresource.com in D:\Hosting\1234543654\html\test_mssql.php on line 3
Конечно, первое, что приходит в голову - неправильно ввел имя, пароль или название хоста. Но я уверен, что правильно. Используя те же самые параметры, я успешно подключаюсь с своему MS SQL из ASP.NET или удаленно (например, с домашней SQL Management Studio).
Быстрый поиск в Гугле показывает, что у многих людей такая же проблема, но решения я не нашел.
Пишу им письмо. Отвечают: "Наверное, Вы путаете параметры соединения. Зайдите в свой hosting account и посмотрите, какая правильная connection string для этой базы".
Я: "Это бессмысленный ответ. Во-первых, в функции mssql_connect() не используется connection string. Во-вторых, даже если бы и использовалась, вы всё равно не даете примеры PHP кода. Я уверен, что набираю всё правильно. И у других ваших пользователей такие же проблемы".
Они: "Мы проверили соединение для Вашего аккаунта, всё работает, Вы можете подключаться к любой базе. А искать ошибки в Вашем коде у нас нет возможности."
Но я же не лыком шит - сам работал в техподдержке. Их надо давить дальше, они обязаны реагировать: "Послушайте, что Вы имеете ввиду под фразой "протестировали соединение"? Вы попробовали вызвать mssql_connect() из PHP? Я понимаю, что вы не в состоянии исправлять ошибки в моих программах, но я попросил проверить всего 1 (одну!) строчку кода! Неужели вы не в состоянии это сделать!"
В результате они извинились и признали, что у них не установлены PHP connectors for MS SQL. Так что ничего не получится. Но если сделать phpinfo(), так вроде как модуль для MS SQL у них есть. Зачем же они его включили, если пользоваться нельзя? "У меня посылка для Вас, только я Вам её не отдам."
Вообще удивительно - вроде у них хостятся миллионы сайтов, а иногда не работают такие простые вещи... и в документации проблема не описана. Может, это она возникает только на Windows-хостинге?
В принципе, полно и других провайдеров, но, как я уже писал, конкуренты либо не предоставляют одновременно требуемые мне PHP, MySQL, ASP.NET и MS SQL, либо берут гораздо больше денег.
7 комментариев:
А если попробовать odbc_connect()?
Кстати, что такое PHP connectors для MS SQL? Разве "коннектор" - не специфический термин MySQL?
Да, я так и собираюсь.
А что такое "коннектор", я тоже не понял. Наверное, очередная выдумка хелпдеска.
Имеем аналогичную ситуацию. Через сокеты соединение к MSSQL-серверу открыть можноу, через mssql_connect - шиш. В поддержку пока не обращались, но собираемся.
Скажите, чем закончилась история?
Да ничем. Ничего не получилось.
Слава богу, проект у нас небольшой. Перевели его на использование odbc функций, но "осадок остался", как говорится.
К сожелению, пока не нашел сведений, есть ли у такого доступа к MSSQL через ODBC какие-нибудь эффекты, типа меньшей производительности. Ничего не знаете по этому поводу?
А вообще, конечно интересно, чем обусловлена такая однобокая поддержка MSSQL и PHP? Godaddy - это второй Windows-хостинг, на котором я встречаю подобную ситуацию. В чем причина? Сговор с Майкрософт, баги в php_mssql или что-то еще?
Кстати, говоря про PHP connectors, они наверное имели в виду официальное расширение для php от Майкрософта.
Производительность, конечно, должна быть хуже. Насколько - не знаю.
Возможно, ODBC не позволяет пользоваться какими-нибудь навороченными функциями типа MARS или табличных параметров.
Для меня главная проблема в том, что нет Linq-провайдера для ODBC. А пользоваться вещами типа ADO.NET или NHibernate неохота. Тем более, что с NHibernate тоже есть проблемы на shared hosting.
По поводу причин - я думаю, что просто им в облом тестировать. Я работал в большой организации, и представляю, что когда ты хостишь миллионы сайтов, для перед установкой любого патча надо сделать кучу тестов и получить визы у больших начальников.
Отправить комментарий