我在XML文件中有几个带有“特殊编号”的条目。
我必须在数据库中搜索这些值。
如果在数据库中找不到该号码,则该“特殊号码”和相关数据应存储在数据库中。
<?php
foreach($array_from_xml_file as $key => $value) {
if($key === 'special_nummer'){
$sql = $db->loadArray("SELECT email FROM table WHERE special_nummer = $value");
// If nothing found insert new Data.
if(empty($sql)){
$insert_data = $db->insertData("INSERT INTO table (special_nummer, title, content) VALUES ('$key','$value','....')");
}
}
}
?>
这个功能的缺点给数据库带来了沉重的负担。
我的第二种方法
我将整个列中的“特殊数字”从数据库加载到XML文件或数组中。
查找数据库中没有的数字并创建新数组。将此数组保存到数据库。
我的问题:如何最有效率?
答案 0 :(得分:1)
使用INSERT IGNORE
:
foreach($array_from_xml_file as $key => $value) {
if($key === 'special_nummer'){
$insert_data = $db->insertData("INSERT IGNORE INTO table (special_nummer, title, content) VALUES ('$key','$value','....')");
}
}
special_nummer
必须是主键或唯一