sql >> データベース >  >> RDS >> Mysql

絵文字をデータベースに保存できません

    さて、私はついにそれを機能させることができました!私を助けようとしたすべての人、特に@RickJamesと@GerardRocheに感謝します。

    提案:

    まず絵文字を使用する必要がある場合は、ローカルホストで簡単なテストを行います。新しいデータベースを作成し、テスト用の新しいアプリを作成します。

    質問で書いた手順に従う場合、またはこのチュートリアルに従う場合: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4 動作する必要があります。

    新鮮な基本的なアプリでローカルに作業することで、必要なすべてのテストを行うためのより多くの制御と余地が得られます。

    解決策:

    私の場合、問題はCodeIgniterのデータベースの構成にありました。愚かな見落としのためにchar_setと照合を適切に設定していませんでした。メッセージを保存する関数のデータベース設定をオーバーライドして、モバイルデータベースで機能していることを確認していました。

    前:

    function message_save ( $data = FALSE )
    {   
        $project_db_config                  = array();
        $project_db_config['hostname']      = 'MY_HOST';
        $project_db_config['username']      = 'MY_USERNAME';
        $project_db_config['password']      = 'MY_PASSWORD';
        $project_db_config['database']      = 'MY_DATABASE';
    
        $mobile_db                          = $this->load->database( $project_db_config, TRUE );
    
        // other code to save message       
    }
    

    後:

    function message_save ( $data = FALSE )
    {
        $mobile_db_connection = $this->load->database('admin_mobile_mh', TRUE);
    
        // other code to save message
    }
    

    結論:

    アプリはデータベースへの接続を適切に設定する必要があります。データベースを適切に設定しているが、アプリと適切に接続していない場合、データベースは機能しません。

    したがって、同様の問題が発生した場合は、APIがchar_setを適切に設定していることを確認してください。 utf8mb4として およびdb_collat utf8mb4_unicode_ciとして 。



    1. WHERE句でCASEを使用する

    2. この関数で戻り値のフォーマットを変更するにはどうすればよいですか?

    3. Android:データベースのアップグレード時にonUpgradeが呼び出されない

    4. SELECTリストの他の場所でエイリアスを参照する