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 — Conexión al Servidor Microsoft SQL y bases de datos Sybase
El Data Source Name (DSN) de PDO_DBLIB se compone de los siguientes elementos:
El prefijo DSN es sybase:
si PDO_DBLIB fue vinculado
con las bibliotecas Sybase ct-lib, mssql:
si
PDO_DBLIB fue vinculado con las bibliotecas de Microsoft SQL Server,
o dblib:
si PDO_DBLIB fue vinculado con las
bibliotecas FreeTDS.
host
El host donde se encuentra el servidor de base de datos.
dbname
El nombre de la base de datos.
charset
El juego de caracteres del cliente.
appname
El nombre de la aplicación (utilizado en sysprocesses
).
Por omisión, "PHP Generic DB-lib"
o
"PHP freetds"
.
secure
Actualmente no utilizado.
Ejemplo #1 Ejemplos con PDO_DBLIB DSN
Los ejemplos siguientes muestran PDO_DBLIB DSN para conectarse a Microsoft SQL Server y bases de datos 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'