2011-07-14 12 views
0

PHPを使用してXMLを解析すると、XMLの各エントリから3つの詳細を取ることができます。PHP/Mysql - DBの既存のエントリを確認する

IDは一意で、タイトルと説明とともにIDをデータベースに格納します。私は重複を防ぐために、CRONを介して解析スクリプトを実行しています。まず、データベースのエントリIDが既にデータベースに存在するかどうかを確認するデータベースをチェックします。

どうすればいいですか?

これは私のすべてのIDの権利を得るでしょうか?

$id = mysql_query("SELECT id FROM updates"); 
$row = mysql_fetch_assoc($id); 

    if ($entry->id != $row) { 
     Insert 
    } else { 
     echo 'Duplicate'; 
    } 

アイデアは何ですか?

XMLのIDと比較できる配列がありますか?

答えて

0
$id = mysql_query("SELECT id FROM updates"); 
$row = mysql_fetch_assoc($id); 

    if ($entry->id != $row['id']) { 
     Insert 
    } else { 
     echo 'Duplicate'; 
    } 

それは配列形式を返しますので、あなたはそれをINSERT ... ON DUPLICATE KEY UPDATEを使用してみてください

+0

これは1行をフェッチしているようですが、IDの出現を複数の行で確認したいと思います。これを行うにはどうしたらよいですか? – CLiown

0

に一致するように、列のインデックスまたは名前を与える必要があります。

0

あなたのDBMSが矛盾したIDを処理することをお勧めします。

このイベントを処理するには、ON DUPLICATEというINSERTオプションを使用して、DBが自動的に別のIDを選択できるようにします。

0
  1. $id = mysql_query("SELECT 1 FROM updates where id = " . $entry->id); 
    $row = mysql_fetch_assoc($id); 
    if ($row[0]) { 
    insert 
    } 
    else { 
    }
  2. uoy場合は、単純に行を挿入しようとした場合、フィールドがユニークなさ - エラー「ユニーク制約を」上昇DB。この場合、レコードが一意であるかどうかを確認する必要はありません。それはとにかく挿入されません。

関連する問題