无需在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。
数据库名
数据库的名称。
字符集
客户端字符集。
应用程序名
应用程序名称(用于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 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