【发布时间】:2010-09-15 18:21:51
【问题描述】:
在我们的网络应用程序中,我们使用 PHP5.2.6 + PDO 连接到 SQL Server 2005 数据库并存储俄语文本。
数据库排序规则为Cyrillic_General_CI_AS,表排序规则为Cyrillic_General_CI_AS,列类型为NVARCHAR(MAX)。
我们尝试使用以下两种方案连接到数据库,但都会导致不同的问题。
-
PDO mssql:
$dbh = new PDO ('mssql:host='.$mssql_server.';dbname='.$mssql_db, $mssql_login, $mssql_pwd);在这种情况下是这样一个简单查询的结果:
SELECT field1 FROM tbl1 WHERE id=1显示
field1数据被截断为 255 个字节。 -
PDO odbc:
$dbh = new PDO ('odbc:DSN=myDSN;UID='.$mssql_login.';PWD='.$mssql_pwd);在这种情况下,同一查询的结果显示完整的未截断数据,但带有问号而不是俄语符号。
注意事项:
- 在 SQL Management Studio 中,数据不会被截断,俄语符号也能正确显示。
- 我们有 Windows 2003 Enterprise Edition SP2
那么我们应该选择什么样的连接方式以及如何解决相应的问题呢?
【问题讨论】:
标签: php sql-server sql-server-2005