- ベストアンサー
※ 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に格納する方法についてのアドバイスをお願いします。
- みんなの回答 (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
お礼
お礼が遅れてしまい申し訳ありませんでした。 >ダブルクォーテーション内で多次元配列の変数を展開する場合、 どこからどこまでが変数かを示すために波括弧{}で変数を括る必要があります。 こんな方法があるとは知りませんでした、まだ勉強不足ですね・・・ また、mysql_real_escape_string関数の件も教えていただきありがとうございました。