Oke saya akhirnya berhasil membuatnya bekerja! Terima kasih kepada semua orang yang mencoba membantu saya, terutama @Rick James dan @Gerard Roche.
Saran:
Jika Anda perlu bekerja dengan emoji, pertama-tama lakukan tes sederhana di localhost. Buat database baru dan buat aplikasi baru untuk tujuan pengujian.
Jika Anda mengikuti langkah-langkah yang saya tulis dalam pertanyaan atau jika Anda mengikuti tutorial ini: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4 itu harus berhasil.
Bekerja secara lokal pada aplikasi dasar yang baru, Anda akan memiliki lebih banyak kontrol dan lebih banyak ruang untuk melakukan semua pengujian yang Anda butuhkan.
SOLUSI:
Dalam kasus saya masalahnya ada pada konfigurasi database di CodeIgniter. Itu tidak mengatur char_set dan collation dengan benar untuk kelalaian yang bodoh:Saya mengganti pengaturan database dalam fungsi yang menyimpan pesan untuk memastikan itu bekerja dengan database seluler.
SEBELUM:
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
}
SETELAH:
function message_save ( $data = FALSE )
{
$mobile_db_connection = $this->load->database('admin_mobile_mh', TRUE);
// other code to save message
}
kesimpulan:
Aplikasi harus menyetel koneksi ke database dengan benar. Jika Anda memiliki database yang disiapkan dengan benar tetapi Anda tidak membuat koneksi yang tepat dengan aplikasi Anda, itu tidak akan berfungsi.
Jadi, jika Anda mengalami masalah serupa, pastikan api mengatur char_set
dengan benar sebagai utf8mb4
dan db_collat
sebagai utf8mb4_unicode_ci
.