По работе столкнулся с задачей настроить систему на работу с Microsoft SQL Server 2008. Система должна поддерживать мультиязычность, как следствие все строковые данные должна хранить в полях типа nvarchar и ntext. Проблема оказалась в том, что php_mssql.dll не умеет работать с этими полями, а для использования PDO и SQL Server Driver for PHP пришлось бы переписать очень много кода.
Решение проблемы оказалось не сложным…
Для доступа к SQL Server будем использовать библиотеку FreeTDS.
1. Скачиваем расширение для php и копируем dll в папку extension_path.
http://download.moodle.org/download.php/dblib/php52/DBLIB_TS.zip (Thread Safe)
http://download.moodle.org/download.php/dblib/php52/DBLIB_NOTS.zip (Non Thread Safe)
2. Отключаем extension=php_mssql.dll в php.ini
3. Установливаем extension=php_dblib.dll в php.ini
4. Создать файл c:\freetds.conf
5. Всё. Теперь все функции mssql_* должны правильно работать с этими типами полей.
p.s. Для подключения к SQLServer Express не нужно добавлять /SQLEXPRESS к имени хоста.
Решение проблемы оказалось не сложным…
Для доступа к SQL Server будем использовать библиотеку FreeTDS.
1. Скачиваем расширение для php и копируем dll в папку extension_path.
http://download.moodle.org/download.php/dblib/php52/DBLIB_TS.zip (Thread Safe)
http://download.moodle.org/download.php/dblib/php52/DBLIB_NOTS.zip (Non Thread Safe)
2. Отключаем extension=php_mssql.dll в php.ini
3. Установливаем extension=php_dblib.dll в php.ini
4. Создать файл c:\freetds.conf
[global]
host = xxx.xxx.xxx.xxx (ip of the MSSQL server)
port = 1433
client charset = UTF-8
tds version = 8.0
text size = 20971520
5. Всё. Теперь все функции mssql_* должны правильно работать с этими типами полей.
p.s. Для подключения к SQLServer Express не нужно добавлять /SQLEXPRESS к имени хоста.