2017-01-20 16 views
0

MySQLとCodeigniterの次のクエリでエラーが表示されます。MySQLで商標記号が機能しないSelect Query

SELECT * FROM table where name='hellome� test' 

エラー:

#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) 
     and (utf8mb4_general_ci,COERCIBLE) for operation '=' 

も、このエラーがCodeIgniterのに入っています。 MySQLのクエリ内の文字のこのタイプを許可する方法

質問

+0

これは米国のためにあるのですか? – Strawberry

+0

いいえ、その私の要求 – Sadikhasan

答えて

0

config> database.phpの中で、データベースの文字エンコーディングを以下のように設定する必要があります。 "utf8"はdb文字のエンコーディングです。

$db ['default'] = array (
      'dsn' => '', 
      'hostname' => 'localhost', 
      'username' => '', 
      'password' => '', 
      'database' => '', 
      'dbdriver' => 'mysqli', 
      'dbprefix' => '', 
      'pconnect' => FALSE, 
      'db_debug' => (ENVIRONMENT !== 'production'), 
      'cache_on' => FALSE, 
      'cachedir' => '', 
      'char_set' => 'utf8', 
      'dbcollat' => 'utf8_general_ci', 
      'swap_pre' => '', 
      'encrypt' => FALSE, 
      'compress' => FALSE, 
      'stricton' => FALSE, 
      'failover' => array(), 
      'save_queries' => TRUE 
    ); 
+0

これはcodeigniterのデフォルト設定です。既に設定ファイルに入っています – Sadikhasan

0

アクティブレコードを使用します。

$this->db->select('*'); 
$this->db->from('blogs'); 
$this->db->where('name','hellome� test'); 
0

これは、テーブルとデータベースのスキーマがラテン語である可能性が高いためです。これらのコマンドを実行してみましょう:

  • ALTER DATABASE db CHARACTER SET utf8 COLLATE utf8_general_ci
  • ALTER TABLE table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
関連する問題