• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP preg_match_all関数の配列をMysqlに格納したい)

PHP preg_match_all関数での配列のMysqlへの格納方法

このQ&Aのポイント
  • PHP初心者の方が、preg_match_all関数を使って正規表現でマッチングする際に、マッチング結果をMysqlに格納したいと思っています。
  • preg_match_all関数を使用すると、マッチング結果が多次元配列となって出力されます。それをそれぞれのレコードに分けてMysqlに格納する方法について質問しています。
  • 現在のコードでは、マッチング結果の配列がbenriカラムにArray[2]という文字列として格納されてしまいます。マッチングした文字列そのものをMysqlに格納する方法についてのアドバイスをお願いします。

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

  • ベストアンサー
  • smileeeen
  • ベストアンサー率70% (21/30)
回答No.1

ダブルクォーテーション内で多次元配列の変数を展開する場合、 どこからどこまでが変数かを示すために波括弧{}で変数を括る必要があります。 mysql_query("insert into seikihyougen1 (benri) value ('{$ar[$i][2]}')"); また、$Patternにはどのようなパターンが記述されているのでしょうか。 特に()で括られた部分がないのであれば、 $ar[$i][2] ではなく $ar[$i][1] ではないでしょうか。 http://php.net/manual/ja/function.preg-match-all.php さらにマッチした文字列を直接SQLに挿入するのは危険なので mysql_real_escape_string関数などを使ってエスケープを施すべきだと思います。 http://www.php.net/manual/ja/function.mysql-real-escape-string.php

jirokita
質問者

お礼

お礼が遅れてしまい申し訳ありませんでした。 >ダブルクォーテーション内で多次元配列の変数を展開する場合、 どこからどこまでが変数かを示すために波括弧{}で変数を括る必要があります。 こんな方法があるとは知りませんでした、まだ勉強不足ですね・・・ また、mysql_real_escape_string関数の件も教えていただきありがとうございました。