Okay, det lykkedes mig endelig at få det til at fungere! Tak til alle, der prøvede at hjælpe mig, især @Rick James og @Gerard Roche.
FORSLAG:
Hvis du har brug for at arbejde med emoji, lav først simple tests på localhost. Opret en ny database og lav en frisk app til testformål.
Hvis du følger de trin, jeg skrev i spørgsmålet, eller hvis du følger denne vejledning: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4 det skal virke.
Når du arbejder lokalt på en frisk grundlæggende app, vil du have mere kontrol og mere plads til at lave al den test, du har brug for.
LØSNING:
I mit tilfælde var problemet i konfigurationen af databasen i CodeIgniter. Det var ikke korrekt opsætning af char_set og sorteringen til en dum overseelse:Jeg tilsidesatte databaseindstillingerne i funktionen, der gemmer beskeder, for at være sikker på, at den fungerede med den mobile database.
FØR:
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
}
KOKLUSION:
Appen skal indstille forbindelsen til databasen korrekt. Hvis du har konfigureret databasen korrekt, men du ikke opretter den korrekte forbindelse til din app, vil den ikke fungere.
Så hvis du støder på lignende problemer, skal du sørge for, at api'et konfigurerer char_set
korrekt som utf8mb4
og db_collat
som utf8mb4_unicode_ci
.