実現したいこと
phpmyadminで作成したテーブルに配列データを一括でレコードに追加する
前提
テーブルカラムは
・id(A_I)
・name
として県名を別々に連番で47レコードを配列データから作成したいのですが1つのレコードに全てのデータが含まれてしまいます
該当のソースコード
PHP
<?php$samplejson = file_get_contents("sample.json");$samplejson = mb_convert_encoding($samplejson, "UTF-8", "ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN");$sampleobj = json_decode($samplejson,true);foreach($sampleobj as $key => $vl) { foreach($vl as $num => $info) { //echo $info["short"]. " "; 確認用 表示内容(北海道 青森 岩手 宮城 秋田 山形 福島 茨城 栃木 群馬 埼玉 千葉 東京 神奈川 新潟 富山 石川 福井 山梨 長野 岐阜 静岡 愛知 三重 滋賀 京都 大阪 兵庫 奈良 和歌山 鳥取 島根 岡山 広島 山口 徳島 香川 愛媛 高知 福岡 佐賀 長崎 熊本 大分 宮崎 鹿児島 沖縄) $short = $info['short']; // 県名の配列データを取得 $instpn[] = "(". $short. ")"; // insert用に変換 $bindpn = implode(",", $instpn); }} $sql = $pdo->prepare("INSERT INTO prefecture ( name ) VALUES (:name)"); $sql->bindParam( ':name', $bindpn, PDO::PARAM_STR); $result = $sql->execute(); $pdo = null;?>
現状
columnのid=1に対し
(北海道),(青森),(岩手),(宮城),(秋田),(山形),(福島),(茨城),(栃木),(群馬),(埼玉),(千葉),(東京),(神奈川),(新潟),(富山),(石川),(福井),(山梨),(長野),(岐阜),(静岡),(愛知),(三重),(滋賀),(京都),(大阪),(兵庫),(奈良),(和歌山),(鳥取),(島根),(岡山),(広島),(山口),(徳島),(香川),(愛媛),(高知),(福岡),(佐賀),(長崎),(熊本),(大分),(宮崎),(鹿児島),(沖縄)
と登録されています。

0 コメント