
foreach ($rss->channel->item as $val) {
$title = $val->title;
$link = $val->link;
$description = $val->description;
$pubDate = $val->pubDate;
$dccreator = $val->dccreator
$stmt = $dbh->prepare("insert into rss (title,link,description,pubDate,dccreator) values(?,?,?,?,?)");
$stmt->execute(array($title,$link,$description,$pubDate,$dccreator));
}
上のような感じでexecuteの実行をループさせようとしています。
しかし最初の一回しか実行されません。(DBへの書き込みが最初の一度しかされません)
すいませんが、何かアドバイスいただけませんでしょうか?
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
まぁなんとも言えませんが
rss テーブルのプライマリーキー(もしくは何らユニークキー)が
競合を起こしていたりしませんか?
早速のご回答ありがとうございました。
なんと、おっしゃるとおりでした。
ユニークキーが競合していました。
こういったことって自分では気がつかないものですね。
本当にありがとうございました。
またよろしくお願いいたします。
No.1
- 回答日時:
foreach の内側が複数回実行されることは(echoや自前のカウンタを使うなどで)確認されているんですよね?
とりあえず書き直したい部分を
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$stmt = $dbh->prepare("insert into rss (title,link,description,pubDate,dccreator) values(?,?,?,?,?)");
$ct = 0;
foreach ($rss->channel->item as $val) {
$title = $val->title;
$link = $val->link;
$description = $val->description;
$pubDate = $val->pubDate;
$dccreator = $val->dccreator
$stmt->execute(array($title,$link,$description,$pubDate,$dccreator));
printf("%s insert<br>", $title); // デバッグ用
$ct++;
}
printf("%d records insert<br>", $ct); // デバッグ用
} catch(PDOException $e) { die($e->getMessage(); }
ご丁寧にソースまで書いていただきありがとうございました。
本当に感謝いたします。
原因は単純なことでした。
キーが競合していたみたいです。
まだまだ初心者ですので、引き続きよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP php エラー 2 2022/10/23 16:43
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS CSSが上手く反映されないみたいです 2 2022/11/21 16:19
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
先頭0で重複のない配列を作りたい
-
PHPの配列の出力について
-
変数に格納された文字列でdefin...
-
規則性があるテキストをグルー...
-
phpでforeachの中にforeachがあ...
-
不要な配列を消したい
-
pythonで辞書データへのアクセ...
-
配列の順番により別の配列を並...
-
関数をの引数について。
-
配列から順位を算出したい
-
2つの配列/キーが一致する際、...
-
phpで$a,$b,を%指定して表示さ...
-
正規表現についての質問
-
データベースに削除機能を追加...
-
配列を利用して表示されるテー...
-
PHP ファイル読み取りについて。
-
助けてください!九星気学のP...
-
すべての変数の値をリセットする
-
2次元配列を1次元配列にするには
-
C言語の配列とポインタについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチング処理(1:N)
-
Excel VBAでフィルター後の対象...
-
foreachで上限回数指定方法また...
-
3つの連想配列を交互に代入し...
-
Smartyでインクリメント
-
sqlのデーターを『あ行』『か行...
-
POSTで渡されるデータの数がわ...
-
foerachの中でキーを足したり、...
-
foreachで配列を、左から縦3列...
-
foreachの間にテーブルの<TR>を...
-
リストボックス複数選択抽出方法
-
textより$$にはさまれた文字列...
-
判定の仕方
-
プログラムの改良
-
forを使わずにforeach文のみで...
-
元号の表示
-
Mac トロイの木馬”Flashback"に...
-
pdfファイルの複数添付 引数の型
-
Delphi XEの警告文を消したい
-
Arduino 全部のピンをチェック...
おすすめ情報