在我们的网络应用中,我们使用PHP5.2.6 + PDO连接到SQL Server 2005数据库并存储俄文文本。PHP/PDO和SQL Server连接和国际化问题
数据库整理是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
显示截断为255个字节的数据
field1
。PDO ODBC:
$dbh = new PDO ('odbc:DSN=myDSN;UID='.$mssql_login.';PWD='.$mssql_pwd);
在这种情况下,同一个查询的结果显示完全不截断的数据,但在问号而非俄罗斯的符号。
注:
- 在SQL Management Studio中的数据不会被截断和俄罗斯的符号正确显示出来。
- 我们有Windows 2003企业版SP2
所以我们应该选择作为连接方法,以及如何解决相应的问题是什么?
感谢您的答复,但问题是definetely在PHP/PDO - 因为当我们连接到同一个数据库中.NET,一切工作正常。 – 2008-10-08 06:15:40