雑多なブログ

音楽や語学、プログラム関連の話題について書いています

PHP: serializeしたデータはテキストで保存するな!

serialize関数で、PHPの値を変換する場合は、テキストデータではなく、バイナリーとして取り扱う事。
普通のテキストデータとして取り扱ってしまうと、

データが壊れてしまって元の値を復元できなくなる!!

これは怖いぞ・・・

下記はPHP公式のドキュメントの説明。

返り値 
value の保存可能なバイトストリーム表現を含む文字列を返します。

これはバイナリ文字列であり、null バイトを含む可能性もあることに注意しましょう。 保存したり利用したりするときも、null バイトが含まれることを想定しておかないといけません。 たとえば、serialize() の出力をデータベースに格納するときには、 通常は CHAR 型や TEXT 型ではなく BLOB 型を使わないといけません。

ドキュメントのURL: https://www.php.net/manual/ja/function.serialize.php