私はphpmyadminのを通じてウェブサーバに私のローカルマシンからMySQLのデータをインポートしていると私は私のスクリプトを実行するとき、私はこのエラーなぜこのエラーが発生していますか?
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
これが理由ですが取得しています?どのように私はこれを解決することができますか?
私はphpmyadminのを通じてウェブサーバに私のローカルマシンからMySQLのデータをインポートしていると私は私のスクリプトを実行するとき、私はこのエラーなぜこのエラーが発生していますか?
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
これが理由ですが取得しています?どのように私はこれを解決することができますか?
問題は、接続の照合と比較される列の照合のためです。あなたには3つの本当の選択肢があります。比較を適切な照合順序にキャストするか、列の照合順序を変更するか、接続の照合順序を変更します。
WHERE fooColumn = CAST('test' AS CHAR CHARACTER SET utf8) COLLATE utf8_general_ci
を、列の照合順序変更するには:接続の照合順序を変更するには
ALTER TABLE fooTable
MODIFY follColumn VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;
を:キャストする
SET NAMES utf8 COLLATE utf8_general_ci
等あなたがより明示的な情報が必要な場合は、あなたを示しては、クエリとテーブル定義。
2つの文字列を2つの異なる文字エンコードで比較することはできません。彼らは同じ文字エンコーディングを持つ必要があります。これは基本的に照合が処理するものです。比較している両方の列で同じ照合が必要です。
照合順序は、phpMyAdminまたは他のデータベースエディションソフトウェア(MySQL Workbenchなど)から変更できます。すべてのテーブルが同じ照合順序を使用していることを確認してください。
Phpmyadminからどうすればいいですか –
ありがとうございました –
phpmyadminで照合を変更して編集しました。両方の接続とテーブル照合は同じです。しかし、私はまだerrroを取得しています –
@アロン:あなたの正確なコードを投稿(あなたの質問に編集)... – ircmaxell
私は投稿する必要がありますか? –