人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

[PHP/MySQL]連想配列のINSERTについて

連想配列にキーと値(1対1)の組合せを複数格納しています。
これをテーブルの1レコード分に見立ててINSERTしたいです。
連想配列にはレコードのカラムのすべての要素が格納されているわけではなく一部の要素のこともあります。
(時によって格納しているキー/値は異なります)

例えば、
テーブル名:members
カラム:会員ID(主キー)、住所、氏名、性別、年齢、職業 ※すべてvarchar

に、連想配列
$values = array(
"会員ID"=>"ID00010",
"住所"=>"埼玉県○市",
"氏名"=>"○本○郎",
"年齢"=>"20"
);

をINSERTするケースです。
この例では、会員ID、住所、氏名、年齢が連想配列に格納されていますが、
職業が格納されたり、年齢が格納されなかったり、格納されているもの処理毎に不定です。(主キーの会員IDは必ず設定します)

この$valuesをINSERTするコードを書きたく、
1カラムづつ、$valuesに格納されているかどうか判定して、SQL用の文字列を操作していくコードは書けたのですが、メンテナンスを考えて、もう少しエレガントに書けないかと思い投稿させていただきました。

検索もしてみたのですが、なかなかぴったりくるコードに出会えず。

●質問者: yhiroaki
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tezcello
ベストアンサー

$defaultValue = array(
'会員ID'=>null,
'住所'=>'日本',
'氏名'=>'通りすがり',
'性別'=>'不明',
'年齢'=>'永遠の23歳',
'職業'=>'ぷー'
);

のようなデフォルト値の配列を作っておいて、
$value = $defaultValue + $values;
してから、全てのカラムについて挿入すればよいと思います。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ