gpt4 book ai didi

PHP/PDO 和 SQL Server 连接和国际化问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:12 27 4
gpt4 key购买 nike

在我们的网络应用程序中,我们使用 PHP5.2.6 + PDO 连接到 SQL Server 2005 数据库并存储俄语文本。

数据库排序规则是Cyrillic_General_CI_AS,表排序规则是Cyrillic_General_CI_AS,列类型是NVARCHAR(MAX)

我们尝试使用以下两种方案连接到数据库,这两种方案都导致了不同的问题。

  1. 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 数据。

  2. PDO odbc:

    $dbh = new PDO ('odbc:DSN=myDSN;UID='.$mssql_login.';PWD='.$mssql_pwd);

    在这种情况下,同一查询的结果显示完整的未截断数据,但带有问号而不是俄语符号。


注意事项:

  • 在 SQL Management Studio 中,数据不会被截断,俄语符号也能正确显示。
  • 我们有 Windows 2003 Enterprise Edition SP2

那么我们应该选择什么样的连接方式以及如何解决相应的问题呢?

最佳答案

连接后尝试执行 SET NAMES "charset"

我不知道匹配 Cyrillic_General_CI_AS 的字符集是什么,但试试“Cyrillic”?

关于PHP/PDO 和 SQL Server 连接和国际化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/178530/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com