Yii2 dblib连接字符集

时间:2016-08-19 15:00:13

标签: php sql sql-server pdo yii2-advanced-app

我可以连接到数据库,但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"));

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或任何合并版本可能会顺利运行。