私は誰かが私を助けることができるかどうか疑問に思う。INSERT IGNOREの場合
私はXMLファイルからデータを取り出し、そのデータをmySQLデータに入れるPHPスクリプトを作成しようとしています。私は数日間このことに取り組んできましたが、私はまだこの権利を得ることができません。
これは、私が一緒に入れて管理しているコードです:
<?
$objDOM = new DOMDocument();
$objDOM->load("xmlfile.xml");
$Details = $objDOM->getElementsByTagName("Details");
foreach($Details as $value)
{
$listentry = $value->getElementsByTagName("listentry");
$listentrys = $listentry->item(0)->nodeValue;
$sitetype = $value->getElementsByTagName("sitetype");
$sitetypes = $sitetype->item(0)->nodeValue;
$sitedescription = $value->getElementsByTagName("sitedescription");
$sitedescriptions = $sitedescription->item(0)->nodeValue;
$siteosgb36lat = $value->getElementsByTagName("siteosgb36lat");
$siteosgb36lats = $siteosgb36lat->item(0)->nodeValue;
$siteosgb36lon = $value->getElementsByTagName("siteosgb36lon");
$siteosgb36lons = $siteosgb36lon->item(0)->nodeValue;
//echo "$listentrys :: $sitetypes :: $sitedescriptions :: $siteosgb36lats :: $siteosgb36lons <br>";
}
require("phpfile.php");
//Opens a connection to a MySQL server
$connection = mysql_connect ("hostname", $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
mysql_query("INSERT IGNORE INTO scheduledsites (listentry, sitetype, sitedescription, siteosgb36lat, siteosgb36lon) VALUES('$listentrys','$sitetypes','$sitedescriptions','$siteosgb36lats','$siteosgb36lons') ")
or die(mysql_error());
echo "Data Inserted!";
?>
私はXMLファイルからデータを引き出すことができますが、それは私のデータベーステーブルにデータを送信するスクリプトの一部です私は問題を抱えています。
スクリプトは実行されますが、最後のレコードだけがデータベースに保存されます。
xmlファイルのフィールドを問題なく解析することができます。新しいデータに 'listentry'という数字があれば、テーブルにすでにあるものと一致する「listentry」番号がありますそのレコードをテーブルに追加する、つまり無視することは望ましくありません。
私はちょうど誰かがこれを見て、私がどこに間違っているのかを教えてもらえるかどうか疑問に思った。あなたは一度だけmysql_query
を呼び出している
感謝
インデックスを使用してDB構造を表示 – user973254