FreeBSD, MS SQL Server 2000, freetds, msdlib, pdo

Надо, значит, настроить pdo доступ к MS SQL Server 2000 в PHP. Почитал Интернет. Поставил freetds, freetds-msdlib, добавив компоненты в php5-extensions:

# cd /usr/ports/lang/php5-extensions
# make config
# make install clean

Ставим все по умолчанию.

Далее необходимо создать файл /usr/local/etc/freetds.ini. Выглядит у меня так:

[global]
initial block size = 512
try server login — yes
try domain login = yes
dump file = /tmp/freetds.log

[MYSERVER]
host = <IP_адресс>
port = 1433
tds version = 8.0
client-charset = CP1251

Перезапускаем apache.

#apachectl restart

Проверяем доступ к серваку c MS SQL 2000:

#tsql -S MYSERVER -U user

где user — пользователь БД

Если все норм, запускаем пишем php-скрипт и проверяем его:

<?php
// Connect to MSSQL
$link = mssql_connect(‘MYSERVER’, ‘user’, ‘user_password’);
if (!$link)
{
die(‘Something went wrong while connecting to MSSQL’);
}
else{
echo «OK!»;
}
?>

Если все нормально, запускаем скрипт с PDO:

<?php
try {
$dbname = «ourdatabase»;
$username = «user»;
$pw = ‘user_password’;
$dbh = new PDO («dblib:host=MYSERVER;dbname=$dbname»,$username,$pw);

} catch (PDOException $e) {
echo «Failed to get DB handle: » . $e->getMessage() . «\n»;
exit;
}

if(isset($dbh)){
echo ‘<br>Success<br>’;
}else{
Echo ‘<br>Failed<br>’;
}

Вот он у меня и не отрабатывает. Пишет, что данные не получены. Мучался я там с настройкой ODBC, ничего не получилось. В итоге забили и программеры перешли на MySQL. Там все заработало.