— Microsoft Windows Server 2003 Service Pack 2 64x Standart Edition
На клиенте:
— MacOSX 10.8.4
— MAMP 2.1.1
Что уже попробовал:
— самому компилить so для php
— использовать macports для установки pdo_dblib, pdo_odbc
— естественно устанавливал freetds
Что в итоге:
— pdo_odbc говорит — «invalid data source name» — подключаю так — $dbh = new PDO(«DRIVER=odbc;dbname=dbname;host=dbserver;port=1433;user='sa';password=1234»);
— mssql_connect — «Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server...»
— pdo_dblib — «SQLSTATE[] (null) (severity 0)» — подключаю так — $dbh = new PDO(«dblib:host=dbserver;dbname=dbname», «sa», «1234»);
пробовал указывать порт, и через: и через, ничего не помогает.
Причем через tsql -H dbserver -p 1433 -U sa -P 1234 -D dbname все работает…
Естественно в php.ini все есть, что надо.
В freetds.conf есть все, и положен он в нужные места, тоже и с odbc.ini
Подскажите плиз, куда копать? Второй день мучаюсь.
Все получилось. Руководствовался статьей. Но помимо всего надо сделать $ export ODBCSYSINI=/opt/local/etc перед использованием isql и в envvars добавить
Там итак всё непросто, а у Вас ещё и версия SQL сервера старше динозавров.
Я подключался в Linux через PDO со строкой odbc:Driver={SQL Server Native Client 11.0};Server='.$host.';Database='.$database.';CharacterSet=UTF-8
Но перед этим админ очень существенно попыхтел (патчил там что-то), чтобы оно запустилось.
Ну а если вдруг Вам понадобится работать с текстом, отличным от латиницы, да ещё и в поле с типом nvarchar, то ночи безудержного секса Вам гарантированы :)
Сейчас пробую, просто руководствовался статьей http://blog.benjaminwalters.net/?p=10, да и хотелось более простое решение, а как оказалось, все не так просто.
Да, так и сделал. Однако первые разы не мог понять почему ничего не работает, хотя все сделано по инструкциям. Но потом использовал dtruss (strace но для MacOSX) и понял, что пути не прописаны в envvars поэтому и не работало.