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で正規化できない時はシリアライズ使う
アンケートか何かに機能追加している際、配列を カンマ区切りで結合して文字列でDB ...
-
-
adminerでMySQLに接続しようとするとエラーになる場合の対応方法
新しく構築したサーバにadminerを入れて接続しようとすると、「mysqlnd ...
-
-
MySQLにて直近のクエリで発行されたAUTO_INCREMENTの値を取得する方法
やりたかったことは「MySQLで新規登録(INSERT)なら、登録時のAUTO_ ...
-
-
MySQLで指定の順にデータをソートする方法(ORDER BY FIELD)
MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...
-
-
MySQLでテーブルとデータの複製(コピー)する方法
MySQLでテーブルとデータを複製したかった。ダンプとかではなく、簡単なSQL文 ...