您不必在 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:
。
主机
数据库服务器所在的 hostname。默认为 127.0.0.1。
数据库名
数据库的名称。
字符集
客户端字符集。
应用名称
应用程序名称(用于 sysprocesses)。默认为“PHP Generic DB-lib”或“PHP freetds”。
安全
目前未用。
示例 #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 版本 = 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