PHP preg_match_all関数の配列をMysqlに格納したい
PHP初心者です。
preg_march_all関数を使って正規表現でマッチングする練習を行っています。
preg_march_allを使った場合、マッチングした結果が多次元配列となって出力されると思うのですが、それらをそれぞれのレコードに分けてMysqlに格納したいと思っています。
php入門サイトのものを弄って作ったのですが、
while (! feof($fp)) {
$s = fgets($fp);
$n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
for ($i = 0; $i < $n; $i++)
mysql_query("insert into seikihyougen1 (benri) value ('$ar[$i][2]')");
}
結果はマッチングした数のレコード分、benriカラムにArray[2]という文字列が入力されてしまいます。
これらをマッチングした文字列に直してMysqlに入れるにはどうすればよいのでしょうか?
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 …
さらにマッチした文字列を直接SQLに挿入するのは危険なので
mysql_real_escape_string関数などを使ってエスケープを施すべきだと思います。
http://www.php.net/manual/ja/function.mysql-real …
お礼が遅れてしまい申し訳ありませんでした。
>ダブルクォーテーション内で多次元配列の変数を展開する場合、
どこからどこまでが変数かを示すために波括弧{}で変数を括る必要があります。
こんな方法があるとは知りませんでした、まだ勉強不足ですね・・・
また、mysql_real_escape_string関数の件も教えていただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
file_existsでファイル名の部分...
-
配列をループでたくさん宣言し...
-
PHPで多次元配列を一度に処理す...
-
$_SESSIONに二次元配列を使える...
-
foreachのなかで次のキーを参照...
-
チェックボックスが複数選択で...
-
重複しないランダム関数を教え...
-
チェックボックス複数選択 mys...
-
Smarty の演算方法
-
URLのサブドメインとドメイン部...
-
PHP pdo mysql 周りについて教...
-
postgresql関数をつかったレコ...
-
GOTO命令のようなことをPHPで
-
PHPのカッコ[ ]の使い方について
-
タブ区切りのデータでnullのデ...
-
PHPのループ数限界値について
-
プルダウンメニューでCSVデータ...
-
プログラミングのPythonのnoteb...
-
プルダウンメニューにDBの内容...
-
PHPのmin関数、「1」以上の数値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
$_SESSIONに二次元配列を使える...
-
foreachのなかで次のキーを参照...
-
String だと「 ByRef引数の型が...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
phpで、連想配列を普通の配列に...
-
PHP 多次元配列変数のデータ受...
-
postgresql関数をつかったレコ...
-
【PHP】配列内のある値以上をカ...
-
SQL文の実行結果を変数で受けて...
-
プルダウンメニューでCSVデータ...
-
Smartyのテンプレートからjavas...
-
PHPにてクラスを配列にすること...
-
CSVデータのn番目だけの値を取...
おすすめ情報