2

MAMP-pro で phpMyAdmin を実行していますが、最近、phpMyAdmin 4.1.7 にアップグレードした後に開始された奇妙な動作に気付きました。基本的に、varchar フィールドは、テーブルやクエリ結果を表示するときに正しく表示されませんが、個々のレコード表示では正しく表示されません。

product フィールドは varchar フィールドであり、通常は "300x250" のようなものであり、16 進数値の文字列ではありません。 ここに画像の説明を入力

最初のレコードを編集すると、値が適切に表示される次の画面が表示されます。 ここに画像の説明を入力

この問題は、ローカルで 4.1.7 にアップグレードしたときに発生したため、4.0.6 にダウングレードすると、すべて正常に戻りました。ただし、これらのテーブルは別の実動データベースからコピーされます。phpMyAdmin を使用して本番環境からエクスポートし、ローカル テーブルをドロップして、ローカル テーブルに再インポートします。

現在、すべての varchar フィールドは 2 桁の 16 進数値の文字列として表示されますが、削除してインポートしたテーブルにのみ表示されます。しばらく操作されていないテーブルには、正しい varchar 値が表示されます。

アップグレード前にはこの問題は見られませんでしたが、4.0.6 で発生し始めました。運用サーバーは 3.4.10.1 を使用していますが、最近更新されていないため、このプロセスを定期的に行っていて問題が発生したことがないため、問題ではないと思います。

編集: さらに読んだ後、問題はvarcharフィールドがutf8_binに設定されており、utf8_general_ciに変更する必要があることに気付きました。私が理解できないのは、本番データベースのフィールドが utf8_bin に設定されていて、それらが常に正しく表示されることと、これが最近まで問題にならなかった理由です。

4

1 に答える 1

0

行の編集./config.inc.phpと変更

$cfg['Servers'][$i]['extension'] = 'mysql';

$cfg['Servers'][$i]['extension'] = 'mysqli';
于 2014-04-28T15:16:28.207 に答える