我想知道是否有人可以帮助我。
我正在尝试整合一个PHP脚本,该脚本从xml文件中获取数据并将数据放入mySQL数据中。我已经在这几天工作了,我似乎仍然无法做到这一点。
这是我设法组建的代码:
<?
$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”数字与表中已有的数字相匹配,那么我正在尝试设置的检查是我不希望将该记录添加到表中,即忽略它。
我只是想知道是否有人可以看看这个,让我知道我哪里出错了。
非常感谢
答案 0 :(得分:2)
您只需拨打mysql_query
一次。所以它只会插入一行。
sql需要在循环中。