前提・実現したいこと
PHPで簡単な会員登録、登録情報の編集フォームを作成しています。
編集画面では、DBに格納したデータを呼び出し、UPDATEしています。
5つのチェックボックスのチェック有無は 0_1_2_3_4 という形で保存しています。
※1つ目と3つめをチェックなら→ 0_2 というデータを格納
編集のときDBから、trafficというkey内の、配列(0_2)呼び出しますが、
foreachしたあと文字列(Array)になってしまいますが、配列のまま上書きしたいです。
どこがおかしいのか判っていないため、アドバイスいただければ幸いです。
発生している問題・エラーメッセージ
trafficの値が、配列から文字列になってしまう
http://localhost/phpmyadmin/の画面
DBに格納しているKeyと値
Key : traffic
value : 0_1_2_3_4
UPDATE時に格納されるデータ
Key : traffic
value : Array
####var_dump($dataArr)した結果
ray(18) { ["family_name"]=> string(6) "捕鯨" ["first_name"]=> string(6) "太郎" ["family_name_kana"]=> string(6) "ほげ" ["first_name_kana"]=> string(12) "たろう" ["sex"]=> string(1) "1" ["year"]=> string(4) "1948" ["month"]=> string(2) "08" ["day"]=> string(2) "01" ["zip1"]=> string(3) "110" ["zip2"]=> string(4) "0003" ["address"]=> string(24) "東京都台東区根岸" ["email"]=> string(14) "hoge@gmail.com" ["tel1"]=> string(3) "090" ["tel2"]=> string(4) "0000" ["tel3"]=> string(4) "1111" ["traffic"]=> array(2) { [0]=> string(1) "0" [1]=> string(1) "2" } ["contents"]=> string(0) "" ["mem_id"]=> string(2) "14" }
####var_dump($column)した結果
string(291) "family_name='捕鯨',first_name='太郎', family_name_kana='ほげ',first_name_kana='たろう', sex='1',year='1982',month='05',day='03', zip1='110',zip2='0001',address='東京都台東区谷中', email='hoge@gmail.com',tel1='090',tel2='0000',tel3='1111', traffic='Array',contents='',mem_id='16',"
該当のソースコード
php
1case 'update_complete'://編集からの登録 2 3 unset($_POST['update_complete']); 4 $dataArr = $_POST; //この時点ではtraffic内のvalueが配列になっている 5 6 $column = ''; 7 8 foreach ($dataArr as $key => $value) { 9 $column .= $key . '=' . "'" . $value . "'" . ','; 10 11 } 12 13 //traffic内のvalueが配列→文字列になっている 14 15 $query = " UPDATE member SET " 16 . $column 17 . " update_date=11" 18 . " WHERE " 19 . " mem_id = " 20 . $dataArr['mem_id']; 21 22 $res = $db->execute($query); //SQL実行 23 $db->close(); //DB Close 24 25 var_dump($dataArr); 26 var_dump($column);
補足情報(FW/ツールのバージョンなど)
XAMMPローカル環境
MySQL
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/31 06:49