
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
POSTで渡されるデータの数がわ...
-
foreachで上限回数指定方法また...
-
配列からプルダウン用のHTMLを生成
-
PHPで連想配列のプルダウンメニ...
-
C言語でCSVファイルの行数を読...
-
プルダウンメニューにDBの内容...
-
verilogで、配列の一部をタスク...
-
$_SESSIONに二次元配列を使える...
-
ネストが深い時のforeachはどう...
-
配列をループでたくさん宣言し...
-
行列
-
文字の先頭行を削除
-
smarty 同じ要素内で改行
-
読み(あ行~わ行)ごとに分け...
-
PHPで、CSVファイルを、指定し...
-
cakephpでのトランザクション処...
-
【PHP】チェックボックスの必須...
-
C言語 最大値と最小値を求めて...
-
Smartyで多次元配列をスマート...
-
自動で番号を振りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLから受け取ったデータを連...
-
変数に格納された文字列でdefin...
-
先頭0で重複のない配列を作りたい
-
array関数につきまして
-
oreachで変数を用意せずにカウ...
-
関数をの引数について。
-
PHPの配列の出力について
-
配列からプルダウン用のHTMLを生成
-
規則性があるテキストをグルー...
-
forを使わずにforeach文のみで...
-
連想配列からの値の取り出し
-
POSTで渡されるデータの数がわ...
-
PHPでテキストファイルを読み込...
-
PHPで、'=>'の意味が分かりませ...
-
phpでforeachの中にforeachがあ...
-
php 2つの配列の内、片方を元に...
-
foreachで上限回数指定方法また...
-
POSTを配列として送信し、キー...
-
多次元配列の扱い方
-
PHPの構文で間違えが分からない
おすすめ情報