除了在 freetds.conf 中指定 tds 版本和用戶端字元集之外,您也可以將其作為參數傳遞。
<?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 資料庫
PDO_DBLIB 資料來源名稱 (DSN) 由以下元素組成
如果 PDO_DBLIB 與 Sybase ct-lib 函式庫連結,則 DSN 前綴為 sybase:
;如果 PDO_DBLIB 與 Microsoft SQL Server 函式庫連結,則為 mssql:
;如果 PDO_DBLIB 與 FreeTDS 函式庫連結,則為 dblib:
。
主機
資料庫伺服器所在的主機名稱。預設為 127.0.0.1。
資料庫名稱
資料庫名稱。
charset
用戶端字元集。
appname
應用程式名稱(用於 sysprocesses 中)。預設為「PHP Generic DB-lib」或「PHP freetds」。
secure
目前未使用。
範例 #1 PDO_DBLIB DSN 範例
以下範例顯示用於連線到 Microsoft SQL Server 和 Sybase 資料庫的 PDO_DBLIB DSN
mssql:host=localhost;dbname=testdb sybase:host=localhost;dbname=testdb dblib:host=localhost;dbname=testdb
除了在 freetds.conf 中指定 tds 版本和用戶端字元集之外,您也可以將其作為參數傳遞。
<?php $dsn = 'dblib:version=7.0;charset=UTF-8;host=domain.example.com;dbname=example;'; ?>
如果您使用的是 FreeTDS 驅動程式,並且想要使用「charset」參數,則您可能需要編輯 freetds.conf(例如 /etc/freetds/freetds.conf)並強制使用至少 7.0 版的通訊協定進行連線。
tds version = 7.0
Charset 參數接受 iconv 支援的所有編碼(執行 iconv --list 以顯示所有編碼)。
當您連線到非標準 1433 連接埠時
對於 win32,請使用像 'mssql:host=hostname,port;dbname=database' 這樣的 DSN
對於 FreeTDS 和 DB-Lib,請使用像 'mssql:host=hostname:port;dbname=database' 這樣的 DSN