我可以连接到数据库,但charset是错误的。它是微软服务器数据库(mssql)。
<?php return array (
'class' => 'yii\db\Connection',
'dsn' => 'dblib:host=*******;port=1433;dbname=*******;charset=utf8',
'username' => '**********',
'password' => '**********',
'charset' => 'utf8',
); ?>
如果我像这样使用mb_convert_encoding,那么我会找到正确的字符但是如何才能正确连接?
print_r(mb_convert_encoding($dbString, 'utf-8', "iso-8859-1"));
答案 0 :(得分:1)
首先在服务器上检查安装的驱动程序是否 php_mssql 和 php_pdo_mssql 。
检查phpinfo()的输出以确定...
'db'=>array(
'connectionString' => 'dblib:host=localhost;dbname=test123',
'emulatePrepare' => false, // comment this if it cause any issue
'username' => 'XXXX',
'password' => 'XXXXX',
'charset' => 'utf8',
),
或其他
可能问题是sql server本身,如果你使用sqlserver 2000,其中sqlsrv驱动程序可能不兼容检查。如果不迁移到sqlserver 2008或任何合并版本可能会顺利运行。