PHP我的管理员否忽略用于导入CSV文件的重复行选项

时间:2014-09-01 14:25:19

标签: php mysql csv phpmyadmin

我有一个CSV文件,我成功导入数据库表。

随着时间的推移,我将使用新数据更新此CSV文件,因此我想知道是否导入了包含已插入表中的行的同一文件,是否有办法避免重复添加重复项??< / p>

在研究时,我遇到了一个名为&#34;忽略重复行的选项&#34;但是在导入选项中我没有这个。

我正在使用在XAMPP中打包的PHP管理员。

是•版本信息:4.2.7.1,最新稳定版本:4.2.8

1 个答案:

答案 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;
}   
?>   

欢呼声