Yii连接SQL SERVER设置字符编码就报错。

问题:YII连接SQL SERVER,如果设置字符编码就报错。

配置文件:

'db'=>array(


	'connectionString' => 'mssql:host=localhost;dbname=mydb',


	'username' => 'myuser',


	'password' => 'mypass',


	'charset' => 'utf8',


	'tablePrefix' => 'tbl_',


),

报错:

2010/04/12 16:07:53 [error] [exception.CDbException] exception ‘CDbException’ with message 'CDbConnection 无法开启数据库连线: SQLSTATE[HY000]: General error: 10007 ‘NAMES’ 不是可以识别的 SET 选项。 [10007] (severity 5)

版本:

2010-04-12 16:07:53 Apache/2.2.14 (Win32) PHP/5.2.6 Yii Framework/1.1.2-dev

Microsoft SQL Server 2008 Enterprise Edition

By the way. “SET NAMES UTF8” 是 MySQL Only 吧。connectionString写的是SQL Server的连接字符串。Yii就不应该用 “SET NAMES UTF8” 语句吧?或者在API文档注明charset属性是 MySQL Only . :rolleyes:

支持~

SQL SERVER对应的应该是什么语句呢?我原先查过发现SET NAMES是标准SQL的,不过手头没有SQL SERVER,所以没法测试。

如果你知道用什么SQL语句设置charset,你可以配置initSQLs来实现。

谢谢Qiang的解答。我查了一下,SQL SERVER 不支持 SQL设置charset。

SQLSERVER的字符集应该是指排序规则名称,在新建立数据库时,会让你选择排序规则名称,如果没有选,则是按默认的Chinese_PRC_CI_AS

使用SQL SERVER的时候不能在配置文件中设置charset。这与PHP无关,完全是SQL SERVER的问题。