tanaka's Programming Memo

プログラミングについてのメモ。

MySQLでMEDIUMBLOB型のデータをMEDIUMTEXT型で取り出したい時

MySQLで、MEDIUMBLOB型のフィールドに文字列を入れていた場合、そのままでは日本語などは化けてしまいます。MySQL側で型変換することで解決しました。

例えば、MySQLの文字エンコードEUC-JP だった場合は、以下のようにして型変換して取り出します。

SELECT CONVERT(column USING ujis) FROM table;

PHPから操作する際、PHP文字コードUTF-8 だったとしても、上記の文字コードMySQL文字コードにしてください。MySQLUTF-8 だった場合は、 ujis ではなく、 utf8 にします。

PHP7.1以降と、MySQL5.5以降の組み合わせであれば、MySQLからPHPへの文字エンコードの変換は、 PDO の初期化時に、PHP 側の文字エンコードを指定しておけば、自動的に変換してくれます。

参考URL