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'])),
);