我有一个CSV文件,成功地导入了一个数据库表。
随着时间的推移,我将用新的数据更新这个CSV文件,因此我想知道是否导入了包含已插入表中的行的同一个文件,是否有办法避免再次添加重复项?
在研究时,我遇到了一个名为“忽略重复行”的选项,然而,在导入选项中,这对我来说是不存在的。
我正在使用打包在XAMPP中的PHP my。
其中.版本信息: 4.2.7.1,最新稳定版本: 4.2.8
发布于 2014-09-01 16:28:04
将唯一键添加到您认为应该是唯一的数据库列中
下面是我为上传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;
}
?> 干杯
https://stackoverflow.com/questions/25607957
复制相似问题