Добре, най-накрая успях да го накарам да работи! Благодаря на всички, които се опитаха да ми помогнат, особено на @Rick James и @Gerard Roche.
ПРЕДЛОЖЕНИЕ:
Ако трябва да работите с емоджи, първо направете прости тестове на localhost. Създайте нова база данни и направете ново приложение с цел тестване.
Ако следвате стъпките, които написах във въпроса, или ако следвате този урок: 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
.