PHP + MySQL でスマホの絵文字を使う


文字コードを utf8mb4 にするとスマホ絵文字が使えるらしい。
まず、テーブルをクリエイトする際に CHARSET を utf8mb4 にする。

CREATE TABLE IF NOT EXISTS (テーブル名) (
  id    char(12) NOT NULL,
  …
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

PHP から DB を new するときに、"SET NAMES utf8mb4" する。

<?php

 try {
    $pdo = new PDO($dsn, (ユーザー名), (パスワード), array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES utf8mb4"));
  } catch (PDOException $e) {
    die("DB接続に失敗しました。");
  }

?>

これで、スマホから絵文字を書き込んだり、読みだしたりしたところ、上手く絵文字が表示されました。
ちなみにバージョンは
PHP 5.6
MySQL 5.6
でした。