INSERT IGNORE在mySQL中

时间:2011-10-21 17:49:08

标签: php mysql

我想知道是否有人可以帮助我。

我正在尝试整合一个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”数字与表中已有的数字相匹配,那么我正在尝试设置的检查是我不希望将该记录添加到表中,即忽略它。

我只是想知道是否有人可以看看这个,让我知道我哪里出错了。

非常感谢

1 个答案:

答案 0 :(得分:2)

您只需拨打mysql_query一次。所以它只会插入一行。

sql需要在循环中。

相关问题