我有一个CSV文件,我成功导入数据库表。
随着时间的推移,我将使用新数据更新此CSV文件,因此我想知道是否导入了包含已插入表中的行的同一文件,是否有办法避免重复添加重复项??< / p>
在研究时,我遇到了一个名为&#34;忽略重复行的选项&#34;但是在导入选项中我没有这个。
我正在使用在XAMPP中打包的PHP管理员。
是•版本信息:4.2.7.1,最新稳定版本:4.2.8
答案 0 :(得分:1)
将唯一键添加到您认为应该是唯一的数据库列
这是我为上传csv文件所做的代码,它会停止插入找到的值,也许它会帮助你。
使用重复密钥更新
<?php
$conn=mysql_connect("localhost","root","");
$db=mysql_select_db("dbname");
$csv_file="/path/to/file";
$savefile="filename.csv";
$handle = fopen($csv_file, "r");
$i=0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { //2nd param is for memory limit use it if u know what u are doing
if($i>0){
$import="INSERT into table_name(col0,col1,col2,col3)values('".addslashes($data[0])."','".addslashes($data[1])."','".addslashes($data[2])."','".addslashes($data[3])."')ON DUPLICATE KEY UPDATE col2= '".addslashes($data[1])."'";
mysql_query($import) or die(mysql_error());
}
$i=1;
}
?>
欢呼声