Okej, jag lyckades äntligen få det att fungera! Tack till alla som försökte hjälpa mig, särskilt @Rick James och @Gerard Roche.
FÖRSLAG:
Om du behöver arbeta med emoji gör först och främst enkla tester på localhost. Skapa en ny databas och skapa en ny app för teständamål.
Om du följer stegen jag skrev i frågan eller om du följer denna handledning: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4 det måste fungera.
Genom att arbeta lokalt med en fräsch grundläggande app får du mer kontroll och mer utrymme för att göra alla tester du behöver.
LÖSNING:
I mitt fall låg problemet i konfigurationen av databasen i CodeIgniter. Det var inte korrekt inställning av char_set och sorteringen för en dum förbiseende:Jag åsidosatte databasinställningarna i funktionen som sparar meddelanden för att vara säker på att den fungerade med den mobila databasen.
INNAN:
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
}
EFTER:
function message_save ( $data = FALSE )
{
$mobile_db_connection = $this->load->database('admin_mobile_mh', TRUE);
// other code to save message
}
SLUTSATS:
Appen måste ställa in anslutningen till databasen på rätt sätt. Om du har konfigurerat databasen på rätt sätt men du inte gör den korrekta anslutningen till din app kommer den inte att fungera.
Så om du stöter på liknande problem, se till att api:n ställer in char_set
korrekt som utf8mb4
och db_collat
som utf8mb4_unicode_ci
.