19

製品ログを表示した後、いくつかのエラーが言及されています:

[2012-08-31 15:56:43] request.CRITICAL: Doctrine\DBAL\DBALException: 
An exception occurred while executing 'SELECT t0.username ....... FROM fos_user t0 WHERE t0.username = ?'
with params {"1":"Nrv\u29e7Kasi"}:

SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT)
and (utf8_general_ci,COERCIBLE) for operation '=' 

ところで私はdoctrine cfgの下にUTF-8のデフォルトを持っています:

doctrine:
    dbal:
        charset:  UTF8

私のMySQLテーブルはすべてにあるようですlatin1_swedish_ciので、私の質問は次のとおりです。

utf8_general_ci合併症や予防措置なしで、すべてのテーブルの照合を手動で変更できますか?

4

3 に答える 3

61
于 2012-09-04T09:48:43.540 に答える
9

それは正しい。私はこの問題に遭遇しました.最善の迅速かつ迅速な解決策は

         CONVERT(fos_user.username USING utf8)
于 2012-09-06T18:15:16.113 に答える
4

次のようにコマンドでテーブルの文字セットを変換するだけです。

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
于 2015-06-23T08:44:52.440 に答える