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 — Connexion au Serveur Microsoft SQL et bases de données Sybase
Le Data Source Name (DSN) de PDO_DBLIB est composé des éléments suivants :
Le préfixe DNS est sybase:
si PDO_DBLIB était
lié avec les bibliothèques Sybase ct-lib, mssql:
si
PDO_DBLIB était lié avec les bibliothèques de Microsoft SQL Server,
ou dblib:
si PDO_DBLIB était lié avec les
bibliothèques FreeTDS.
host
L'hôte sur lequel le serveur de base de données se situe.
dbname
Le nom de la base de données.
charset
Le jeu de caractères du client.
appname
Le nom de l'application (utilisé dans sysprocesses
).
Par défaut, "PHP Generic DB-lib"
ou
"PHP freetds"
.
secure
Actuellement inutilisé.
Exemple #1 Exemples avec PDO_DBLIB DSN
Les exemples suivants montrent PDO_DBLIB DSN pour se connecter au Microsoft SQL Server et les bases de données 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'