0

クライアント情報を mysql データベースに記録する zf2 プロジェクトがあります。私のDBはutf8charsetとutf8_unicode_ci.

私のZF2global.phpはこれです

return array(
    'db' => array(
        'username' => 'root',
        'password' => 'root',
        'driver'   => 'Pdo',
        'dsn'      => 'mysql:dbname=atendimento;host=localhost',
        'charset'  => 'utf-8',
        'driver_options' => array(
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
        ),
    ),
    'service_manager' => array(
        'factories'   => array(
            'Zend\Db\Adapter\Adapter'
                      => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
);

ブラウザーで入力を送信すると、ZF2 エラー"Statement could not be executed"になり、次に進みますSQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE3' for column 'column' at row 1

この質問がすでに回答されている場合は申し訳ありませんが、回答が見つかりませんでした。お役に立てば幸いです。

4

3 に答える 3

1
return new \Zend\Db\Adapter\Adapter ( array (
                'driver' => 'pdo',
                'dsn' => "mysql:dbname=$config[Dbname];host=$config[host]",
                'username' => $config ['Dbuser'],
                'password' => $config ['Dbpassword'],
                'driver_options' => array(
                        \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
                ),
        ) );
于 2014-09-28T13:15:25.810 に答える
0

これはグローバルからの正しい構成であり、私にとってはうまくいきます

return array(
    'db' => array(
        'driver'         => 'Pdo',
        'dsn'            => 'mysql:dbname=singclub;host=localhost;',
        'username'       => 'root',
        'password'       => '',
        'driver_options' => array(
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8"
        ),
    ),
);
于 2013-09-29T21:41:24.343 に答える
-8

私の友達が私を助けてくれました

utf8_encode($data)解決策は、記録する前にutf8_decode($data)ビューで設定することでした

于 2013-09-18T17:48:25.633 に答える