7

Symfony2 にローカルホストでうまく動作するプロジェクトがありますが、それを外部サーバーに移動した後、問題が発生しました。

  1. ポーランド語の文字を含むデータベースからの結果名が表示されません
  2. プロファイラーでクエリをチェックしました:
    • 「パラメータ」セクションには正しい文字セットがあります
    • 「実行可能なクエリ」には同じパラメーターがありますが、文字セットが正しくありません

例えば:

(...) WHERE ((((c1_.name LIKE '%Å�%') OR (c3_.name LIKE '%Å�%') OR (..) Parameters: ['%ś%', '%ś%', (...)]

すべてのデータベース テーブルには、charset = utf8_unicode_ci があります。

config.yml で設定しました

doctrine: 
    dbal: 
      charset: UTF8 

フレームワーク文字セットの設定が機能しません。

/config.php テストは次のように述べています。

RECOMMENDATIONS:
  1. Install and enable a PHP accelerator like APC (highly recommended).
  2. Set short_open_tag to off in php.ini*.
  3. Set magic_quotes_gpc to off in php.ini*.
  * Changes to the php.ini file must be done in "/usr/local/php/php.ini".

しかし残念ながら、そのサーバーの php.ini にアクセスできません。magic_quotes_gpc がその問題を引き起こした可能性はありますか? コマンド ラインにもアクセスできないので、プロジェクト (データベース、ファイル システム、ベンダー) を ftp および phpmyadmin 経由で追加しました。

ローカルホストに問題がないため、それはサーバー構成に問題があると思います。サーバー構成にアクセスできないため、クエリビルダーの文字セット構成を変更するしか方法がありません。どこでそれを行うことができますか? 他に何がその問題を引き起こす可能性があるか知っていますか?

ありがとう

4

1 に答える 1

9

見つかった解決策:「SET NAMES utf8」を設定するには、ドクトリン設定を変更しました

doctrine:
    dbal:
          driver:   %database_driver%
          host:     %database_host%
          port:     %database_port%
          dbname:   %database_name%
          user:     %database_user%
          password: %database_password%
          charset:  UTF8
          options:
             1002:  "SET NAMES 'UTF8'"

今はうまくいきます。

于 2012-12-05T10:36:57.513 に答える