6

我在 MsSQL 中有一个数据库,我通过 PDO 对象从我的 PHP 代码连接到该数据库。数据库有“Kadź”列。

现在 - 如果我执行

SELECT Kadź FROM <tablename>

从我的 SQL Server Management Studio 查询 - 一切正常,我得到了结果。但是,当我尝试执行

$sql = "SELECT Kadź FROM <tablename>";

我收到一个

SQLSTATE [HY000]:一般错误:207 一般 SQL Server 错误:检查来自 SQL Server [207](严重性 16)的消息 [(null)]

错误。查询任何其他列不会产生任何问题,但这一列会。我怀疑这是因为该列名称中的“ź”字符在我的 PHP 代码和数据库之间的路径上编码不正确。

我的服务器使用的排序规则是“Polish_Cl_Al”。我尝试通过添加属性来修复它

$this->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAME'utf8'");

但是 PDO 回答我,驱动程序不支持它...

提前感谢您的帮助

4

1 回答 1

5

你可以试试:

$pdo = new PDO('dblib:host=localhost;dbname=databasename;charset=UTF-8', 'username', 'password');

或(对于窗户)

$smth->setAttribute(PDO::SQLSRV_ATTR_ENCODING, PDO::SQLSRV_ENCODING_UTF8);
于 2012-08-22T07:04:37.163 回答