文字コードを 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
でした。