PHPからMySQLにシリアライズしたデータを格納
2014/05/22
アンケートフォームみたいなのがあって、
今後も定期開催し、尚且つ質問内容は増減する
可能性があった。
で、回答するほうは3~のテキストボックス。
今は3つだけど今後は増えるかもしれないし減るかもしれない。
で、それをデータベースに突っ込みたかった。
今までは回答を受け取ってカンマ区切りとかにして
DBに突っ込んでたけど、以前先輩から「カンマ区切りは
いけてない。正規化できないならせめてシリアライズしなさい」
と言われたことを思い出して試したところ便利だった。
■参考サイト
http://suin.asia/2011/08/09/4_tips_to_preserve_array_as_string
$ans = serialize($_GET['answer']);
$sql = '
INSERT INTO テーブル
(
answer
)
VALUES
(
"' . mysql_real_escape_string($ans) . '",
)
;
エスケープとかどうなるの、と思ったけど上記の形でいけた。
MySQLの方は文字列タイプでいけるみたいなので、
text型でいった。多分varcharでも大丈夫そう。
あと、文字列扱いだったらカンマ区切りとあんま変わらへんのでは?
と思ったけど、よくよく見ると多数の型(bool型・int型・float型・string型・添字配列・連想配列)
がいけるらしいので絶対便利。
関連記事
-
-
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...
-
-
MySQLで1対多というテーブル構造でデータ結合と条件検索する方法
MySQLで飲食店舗テーブルと休業日テーブルがあり、1店舗に対して複数行の休業日 ...
-
-
MySQLで全角半角を区別せずに検索する方法(collate utf8_unicode_ci)
あるシステムでMySQLの検索時に「WHERE test_column coll ...
-
-
MySQLで一連の処理を関数のように実行できるストアドプロシージャの設定と利用方法
MySQL関連のサイトを見ていた際にストアドプロシージャが云々というページがあっ ...
-
-
MySQLでテーブル構造とデータをコピーする方法
MySQLで既にあるテーブルとデータに対して実験を行う必要があった。本番テーブル ...