勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPからMySQLにシリアライズしたデータを格納

   2014/05/22  PHP MySQL / MariaDB

アンケートフォームみたいなのがあって、
今後も定期開催し、尚且つ質問内容は増減する
可能性があった。

で、回答するほうは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型・添字配列・連想配列)
がいけるらしいので絶対便利。

 - PHP MySQL / MariaDB

  関連記事

ON DUPLICATE KEY UPDATE後にinsert_idを取得すると結果が0になる
ON DUPLICATE KEY UPDATE後にinsert_idを取得すると結果が0になる

MySQLでON DUPLICATE KEY UPDATE句指定し、データの登録 ...

MySQLで月別に集計を行う。あと日付時刻関数。
MySQLで月別に集計を行う。あと日付時刻関数。

現在進行形でやっているデータ集計系だけど 新たな発見があったのでメモ。 ■日付時 ...

MySQLでテーブルのカラム名やカラムの型等、詳細情報を取得する方法
MySQLでテーブルのカラム名やカラムの型等、詳細情報を取得する方法

MySQLでテーブルのカラム名やカラムの型等、詳細情報を取得する方法をメモ。 & ...

MySQLにてSELECT時にdate型のカラムから干支(十二支)を計算し表示する方法
MySQLにてSELECT時にdate型のカラムから干支(十二支)を計算し表示する方法

MySQLにdate型のカラムに誕生年月日が格納されており、そこから干支(十二支 ...

MySQLでホスト指定しても正常に接続できない場合
MySQLでホスト指定しても正常に接続できない場合

MySQL自体は動いており、ユーザーも登録されているのに、ホスト名を指定しても正 ...