这让我很困惑。我正在尝试为我的Sqlserver连接设置编码,而我所尝试的所有尝试都失败了。我只得到
错误:使用"Sqlserver“的数据库连接丢失或无法连接。 数据库服务器返回此错误: SQLSTATEIMSSP:为SQLSRV_ATTR_ENCODING指定了无效编码。
我试图通过编码解决的原始错误是:
错误: SQLSTATEIMSSP:发生错误,将查询字符串转换为UTF-16:目标多字节代码页中不存在Unicode字符的映射。
SQL版本是2008 R2。
Cakephp版本: 2.4.2
PHP版本: 5.3.27
发布于 2013-11-20 03:29:39
经过大量的尝试和错误之后,这是可行的:
public $default = array(
'datasource' => 'Database/Sqlserver',
'persistent' => false,
'host' => 'localhost',
'login' => 'sa',
'password' => 'password',
'database' => 'SchedulingDatabase',
'encoding' => PDO::SQLSRV_ENCODING_UTF8
);
发布于 2015-04-03 21:37:24
用Cakephp3.0尝试一下,似乎效果很好。
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Sqlserver',
'persistent' => false,
'host' => 'localhost',
'port' => '1433', //using this port
'username' => 'sa',
'password' => 'password',
'database' => 'cake_bookmarks',
'encoding' => PDO::SQLSRV_ENCODING_UTF8,
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
]
发布于 2013-11-19 10:06:43
SQL 2008不支持UTF-16只支持SQL 2012
http://msdn.microsoft.com/en-us/library/ms143726(v=sql.110).aspx
MS根本不支持UTF-8。
https://stackoverflow.com/questions/20042778
复制相似问题