По моим наблюдениям все чаще встает о слиянии открытых решений с проприетарными. Бесплатный PHP связываем с MSSQL.
Для этих нужд нам понадобится установить расширение для php (в своем опыте я использую php52), этот модуль php52-mssql. Да вот так все просто, при установке он за собой потянет ещё пару пакетов и одним из них будет FreeTDS.
cd /usr/ports/databases/php52-mssql
make
make install
make clean
make
make install
make clean
Проверяем что в /usr/local/etc/php.ini появились директивы для упраовения mssql.
Проверяме /usr/local/etc/php/extensions.ini присутствие строки
extension=mssql.so
Далее создаем конфигурационный файл freetds
cd /usr/local/etc/
cp freetds.conf.dist freetds.conf
cp freetds.conf.dist freetds.conf
Вставляем строку для соединение с базой MSSQL
[mssql_db]
host = 192.168.1.1
port = 1433
tds version = 8.0
host = 192.168.1.1
port = 1433
tds version = 8.0
Теперь при соединении с сервером баз данных используя функцию mysql_connect() надо использовать в качестве имени сервера mssql_db.
Теперь проверяем работу php и MSSQL скриптом
<?
$conn = mssql_connect ('mssql_db', 'dbadmin', 'pass')
or die ("Can't connect to Microsoft SQL Server");
mssql_select_db('db_name', $conn) or die ("Can't select databes");
$result = mssql_query("sql запрос");
for ($i = 0; $i < mssql_num_rows( $result ); ++$i){
$line = mssql_fetch_row($result);
print( "$line[0]\n");
}
?>
$conn = mssql_connect ('mssql_db', 'dbadmin', 'pass')
or die ("Can't connect to Microsoft SQL Server");
mssql_select_db('db_name', $conn) or die ("Can't select databes");
$result = mssql_query("sql запрос");
for ($i = 0; $i < mssql_num_rows( $result ); ++$i){
$line = mssql_fetch_row($result);
print( "$line[0]\n");
}
?>
это хоть и костыль, но работает исправно, неудобности возникают только в случае работы с несколькими серверами
Сделал всё инструкции. Работает без проблем. Спасибо!