phalconでMySqlを使う場合、
だけではないと思うけど、Laravelでも同じ現象が報告されている
🚨Laravel 絵文字が通らない問題
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: ‘\xF0\x9F\x94\xB5\xE3\x81…’
勝手にDatetimeって判定してる。。。
可能性としては、phalconでもLaravelでもPHPなんで、mysql or mariadbのClientあたりの設定?
と思って調べてみても、my.cnfは、サーバー側、クライアント側共にutf8mb4が指定されている。
エラーメッセージで一瞬混乱してしまって、テーブル定義を疑ってしまうかもしれないのでしっかりとメモを残しておく。
これは絵文字入れたときにutf8に入ってないのでダメですよってことです。
utf8mb4これを指定してあげればOK
一部抜粋。
return new \Phalcon\Config([
‘database’ => [
‘adapter’ => ‘Mysql’,
‘charset’ => ‘utf8mb4’,
],
しかし、これまでutf8でも絵文字が通ってたんだけどな。
設定からすると、これまではPHP7.2だったのを7.3にしたからかな。厳密にチェックするようになったのかな。
しかし、誤作動というか間違ったエラーメッセージは困りますな。