我有一个包含许多重复条目的CSV文件。如何在不导入重复项的情况下将条目导入MySQL?
答案 0 :(得分:1)
你可以在MySQL中将其中一列(一个你确定会有重复数据的列)定义为UNIQUE,然后导入所有内容,让数据库在重复的条目中吐出错误。
答案 1 :(得分:0)
这是将条目导入MySQL的简单代码,无需导入重复项并计算记录数和重复次数
<?php
$duplicate=0;
$record=0;
$total=0;
$conn=mysql_connect("localhost","root","rootpass","") or die(mysql_error());
mysql_select_db("svn",$conn);
ini_set('max_execution_time', 300);
if(isset($_POST['submit']))
{
$file=$_FILES['file']['tmp_name'];
$handle=fopen($file,"r");
while(($fileop=fgetcsv($handle,1000,",")) !== false)
{
if(! get_magic_quotes_gpc() )
{
$fn= addslashes ($fileop[0]);
$ln=addslashes ($fileop[1]);
$ti=addslashes ($fileop[2]);
$ac=addslashes ($fileop[3]);
$em=addslashes ($fileop[4]);
$op=addslashes ($fileop[5]);
$mp=addslashes ($fileop[6]);
$fx=addslashes ($fileop[7]);
$ad=addslashes ($fileop[8]);
$co=addslashes ($fileop[9]);
$st=addslashes ($fileop[10]);
$ci=addslashes ($fileop[11]);
$zc=addslashes ($fileop[12]);
}
else
{
$fn= $fileop[0];
$ln=$fileop[1];
$ti=$fileop[2];
$ac=$fileop[3];
$em=$fileop[4];
$op=$fileop[5];
$mp=$fileop[6];
$fx=$fileop[7];
$ad=$fileop[8];
$co=$fileop[9];
$st=$fileop[10];
$ci=$fileop[11];
$zc=$fileop[12];
}
$query=mysql_query("SELECT * FROM test WHERE email='$em'");
if(mysql_num_rows($query)>0)
{
$duplicate=$duplicate+1;
}
else
{
$record=$record+1;
$sql=mysql_query("INSERT INTO test(first_name,last_name,title,account,email,officephone,mobphone,fax,address,country,state,city,zipcode)
VALUES('$fn','$ln','$ti','$ac','$em','$op','$mp','$fx','$ad','$co','$st','$ci','$zc')");
}
}
echo"Data inserted successfully";
echo "<table width='600' cellpadding='5' cellspacing='5' border='1'>";
echo "<tr>"."<td>"."Record inserted"."</td>"."<td>".$record."</td>"."</tr>";
echo "<tr>"."<td>"."duplicate record"."</td>"."<td>".$duplicate."</td>"."</tr>";
echo "<tr>"."<td>"."Total records"."</td>"."<td>".$total=$record + $duplicate."</td>"."</tr>";
echo "</table>";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<?
$duplicate=0;
$record=0;
$total=0;
?>
</head>
<body>
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="selectfile"/><br/>
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>