Instead of specifying tds version and client charset in freetds.conf, you may pass it as a parameter.
<?php $dsn = 'dblib:version=7.0;charset=UTF-8;host=domain.example.com;dbname=example;'; ?>
(PECL PDO_DBLIB >= 0.9.0)
PDO_DBLIB DSN — Соединение с базами данных Microsoft SQL Server и Sybase
Имя источника данных (Data Source Name, DSN) PDO_DBLIB состоит из следующих элементов:
Префикс DSN sybase:
указывают, только если
драйвер PDO_DBLIB собрали с библиотеками Sybase ct-lib,
префикс mssql:
, если PDO_DBLIB собрали с библиотеками
Microsoft SQL Server, и префикс dblib:
, если
драйвер PDO_DBLIB собрали с библиотеками FreeTDS.
host
Имя сервера, на котором располагается база данных. По умолчанию — 127.0.0.1.
dbname
Имя базы данных.
charset
Клиентская кодировка.
appname
Имя приложения (используется в sysprocesses). По умолчанию "PHP Generic DB-lib" или "PHP freetds".
secure
Пока не используется.
Пример #1 Примеры использования драйвера PDO_DBLIB DSN
Примеры DSN-имён драйвера PDO_DBLIB для соединения с базами данных Microsoft SQL Server и Sybase:
mssql:host=localhost;dbname=testdb sybase:host=localhost;dbname=testdb dblib:host=localhost;dbname=testdb
Instead of specifying tds version and client charset in freetds.conf, you may pass it as a parameter.
<?php $dsn = 'dblib:version=7.0;charset=UTF-8;host=domain.example.com;dbname=example;'; ?>
If you're using FreeTDS driver and you want to use "charset" parameter then you may have to edit freetds.conf (e.g. /etc/freetds/freetds.conf) and force connection using at least version 7.0 of the protocol.
tds version = 7.0
Charset parameter accepts all encodings supported by iconv (execute iconv --list to show all encodings).
when you connect to non standart 1433 port
for win32 use DSN like 'mssql:host=hostname,port;dbname=database'
for FreeTDS and DB-Lib use DSN like 'mssql:host=hostname:port;dbname=database'