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 — Conectarse a bases de datos de Microsoft SQL Server y Sybase
El Nombre del origen de datos (DSN) de PDO_DBLIB está compuesto por los siguientes elementos:
El prefijo DSN prefix is sybase:
si PDO_DBLIB fue
vinculado con la bibliotecas ct-lib de Sybase,
mssql:
si PDO_DBLIB fue vinculado con las
bibliotecas de Microsoft SQL Server, or dblib:
si
PDO_DBLIB fue vinculado con las bibliotecas de FreeTDS.
host
El nombre del host en el cual la reside el servidor de bases de datos. El predeterminado es 127.0.0.1.
dbname
El nombre de la base de datos.
charset
El conjunto de caracters del cliente.
appname
El nombre de la aplicación (usado en sysprocesses). El valor predeterminado es "PHP Generic DB-lib" o "PHP freetds".
secure
Actualmente no se utiliza.
Ejemplo #1 PDO_DBLIB DSN examples
El siguiente ejemeplo muestra una DSN de PDO_DBLIB para conectarse a bases de datos de Microsoft SQL Server y 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'