Так-как эмодзи являются символами юникода, то все скрипты и страницы сайта должны быть в кодировке UTF-8.
SET NAMES 'utf8mb4'
В PDO имеется возможность указать кодировку при подключении:
$dbh = new PDO('
mysql:dbname=db_name;host=localhost',
'user',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8mb4'")
);
Если используется расширение MySQL:
$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db('db_name');
mysql_query("SET NAMES 'utf8mb4'");
$mysqli = new mysqli('localhost', 'user', 'password', 'db_name');
$mysqli->query("SET NAMES 'utf8mb4'");
Запрос на перекодировку нужно сделать единоразово для всех таблиц базы, у которых планируется использование символов. Запросы можно выполнить в PhpMyAdmin.
ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8mb4;
ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8mb4;
ALTER TABLE `table3` CONVERT TO CHARACTER SET utf8mb4;
ALTER TABLE `table4` CONVERT TO CHARACTER SET utf8mb4;