1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\xB8 !...' for column 'message' at row 1 in ...

Posted at

はじめに

PDOでデータベースに絵文字が含まれている文字列をデータベースに保存しようとした際にSQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\xB8 !...' for column 'message' at row 1 in ...というエラーがでしまいました。
こちらの方の対応方法を備忘録として残しておこうと思います。

対応方法

原因としてはutf8のデータベースにutf8mb4の絵文字を保存しようとしていたのエラーが出ていました。

  • utf8は3バイトしか対応していない
  • 絵文字は4バイト

PDOのインスタンスを作るときにcharsetをutf8mb4で指定してあげると無事に保存することができました。

  try {
      $dbh = new PDO('mysql:host=localhost; dbname=procir_suizu266; charset=utf8mb4', 'suizu266', 'c3mbe7kmfj');
   } catch (PDOException $e) {
       echo 'DB接続エラー:' . $e->getMessage();
       die();
   }

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?