人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php + mysql + pearで情報を保存する際の重複を処理する方法。
上記の環境にてrssの情報保存して、過去のエントリーまで表示できるrssリーダーを作っています。

RSSの情報を配列化した$rssShowを下記のようにmysqlに保存するとします。

<?php

require_once("DB.php");
$dsn="mysqli://pearusr:pearpass@localhost/pear";
$db=DB::connect($dsn);

$stt=$db->prepare("INSERT INTO rss_field(channel_title,channel_link,channel_desc) VALUES(?,?,?)");
foreach ($rssShow as $value) {
$result=$db->execute($stt,array($value['channelsTitle'],$value['channelsLink'],$value['channelsDesc']));
}

$db->disconnect();

?>


この形だと読み込むたびに、エントリー情報が重複されていきます。
こういった場合はどのように処理すれば、重複させずにmysqlに保存することができるのでしょうか?

ブログエントリーのURLである$value['channelsLink']をmysqlの情報と重複していないかチェックするような気がしますが、
よくわかりませんでした。
まだ勉強を始めたばかりなので、考え方も間違っていたらご指摘お願いします。
よろしくお願いいたします。

●質問者: やまねこ
●カテゴリ:インターネット ウェブ制作
✍キーワード:as CONNECT dB DSN localhost
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kuakua
●60ポイント

初心者ということで簡単にやるには2つ方法があります。(これはとにかく簡単にやるという内容です)

(1)prepare-executeではなく、doを使ってSQLを発行しwhere句に複問合せを書き、戻ってきた内容がNULL(IS NULL)の場合にINSERTする。

(2)乱暴ですが1発目はとにかくUPDATEで更新を発行してしまい、PHP側でDBIの戻り値を見て失敗している(同じKEYで登録されたデータが無い)場合INSERTで再発行する。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ