How to Enable Emoji on MySQL with PHP
This is a short tutorial on how to enable Emojis with MySQL and PHP. Simple 5 Steps to get started with Emojis MySQL.
I struggled so much getting iOS and Android Emoji’s to work with my Cordova Application. The Server Side of my application is in PHP and Runs a MySQL Database.
After reading and trying i finally figured out the steps to get your Emoji running.
1) Change your DB Character Set and Collation:
SET NAMES utf8mb4; ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
2) Change your Tables Character Set and Collation:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3) Change Column Character Set and Collation:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(140) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;
4) Make Sure you PHP Connection with MySQL is also on Same Character Set and Collation
5) Use the Following Code to Insert into Database and to Retrieve.
//Insert Code $data_insert = Array ( "message" => json_encode($message), "revision_id" => $revision_id, "user_id" => $user_id, "date_created" => date('Y-m-d H:i:s'), ); $id = $db_2->insert ('chats', $data_insert); //Retrieve Code $result_json = json_decode($record['message']); if (json_last_error() === JSON_ERROR_NONE) { $return_message = json_decode($record['message']); } else { $return_message = $record['message']; } $data[] = array( 'chat_id' => $record['chat_id'], 'type' => $type, 'message' => $return_message, 'full_name' => $user_info['full_name'], 'email' => $user_info['email'], 'profile_image' => json_decode($user_info['profile_image']), 'date_created' => $record['date_created'], 'date_created_nice' => time_elapsed_string(strtotime($record['date_created'])), );