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 Sunucusu ve Sybase veritabanlarına bağlantı
PDO_DBLIB DSN'si şu bileşenlerden oluşur:
DSN öneki, PDO_DBLIB, Sybase ct-lib kütüphaneleri kullanılmak üzere
derlenmişse sybase:
, Microsoft SQL
Sunucusunu kullanmak üzere derlenmişse mssql:
,
FreeTDS kütüphanelerini kullanmak üzere derlenmişse
dblib:
dizgesidir.
host
Veritabanını barındıran konağın adı veya IP adresi; 127.0.0.1 öntanımlıdır.
dbname
Veritabanının ismi.
charset
İstemcinin karakter kümesi.
appname
Uygulama ismi (sistem süreçlerinde kullanılır). "PHP Generic DB-lib" veya "PHP freetds" öntanımlıdır.
secure
Şimdilik kullanılmamaktadır.
Örnek 1 - PDO_DBLIB DSN örnekleri
Aşağıdaki örnekte, Microsoft SQL Sunucusu ve Sybase veritabanlarına bağlanmak için kullanılan PDO_DBLIB DSN'leri gösterilmiştir:
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'