• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:preg_match_allで取得データをDBへ)

preg_match_allでデータを取得し、DBに格納する方法

このQ&Aのポイント
  • preg_match_all関数を使用してデータを取得し、DBに格納する方法について教えてください。
  • 指定したパターンでデータを検索し、取得した結果を配列に格納することができます。
  • 取得したデータはまとめてDBに保存したいのですが、どのようにすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

ああ・・・すみません foreach($match[0] as $val){ ですね

anan19
質問者

お礼

できました!意図したとおりにDBのテーブルに格納されました。 アドバイスありがとうございます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

すみませんtypo ×foreach($matche as $val){ ○foreach($match as $val){ でもダメでしょうか?

anan19
質問者

お礼

さっそくのご返信ありがとうございます。 修正してPHPを実行しましたが、だめでした、、 修正してPHPを実行するたびにレコードが1つ増える という現象になってます。 また、今度は違うエラーが出てしまいました、、 Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in C:\xampp\htdocs\xxx.php on line 74 これは、引数として文字列を指定するべきなのに配列が指定されたためのエラー ということでしょうか? つまり、一旦文字列にしなおす処理がない ということになりますでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なんかマッチしたデータがかなり中途半端ですが ホントそのデータでよろしいのでしょうか? もしそのまま投入するなら、たとえばこんな風にする foreach($matche as $val){ $sql="INSERT INTO `テーブル`(`カラム`) VALUES('".mysql_real_escape_string($val)."')"; mysql_query($sql); } あとはテーブルの構成次第。 もちろん投入データが多いようであれば、バルク処理で values(データ1),(データ2),・・・ みたいな文字列をつくっても好いかと思います

anan19
質問者

お礼

アドバイスありがとうございます。 たとえばこんな風 で記述してました。 実行しましたが、、DBにデータが1レコードも格納されません。。 対象データ3000くらいあるからでしょうか。。

anan19
質問者

補足

エラーは Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\xxx.php on line 73 というものでした..