如何在存储到数据库之前检查Excel表单值的重复值

我从Excel表获取数据并将其存储在数据库中。 它正在成功存储数据。 我已经在数据库中创build了两个表,一个是暂时从excel表单&存储中导入值,另外一个是从临时存储表中获取值,还检查重复logging。 我可以在第二张表插入数据,但请build议我如何检查重复的logging,然后再存储在原始表中。

这是代码:

<?php if(isset($_POST["submit"])) { $file = $_FILES['file']['tmp_name']; $handle = fopen($file, "r"); $c = 0; $row = 1; while(($filesop = fgetcsv($handle, 1000, ",")) !== false) { $row++; if($row != 1) { $custid = $filesop[0]; $zone = $filesop[1]; $city = $filesop[2]; $category = $filesop[3]; $focus = $filesop[4]; $customer_type = $filesop[5]; $lead_source = $filesop[6]; $exhibition = $filesop[7]; $organization_name = $filesop[8]; $assign_to = $filesop[9]; $description = $filesop[10]; $division = $filesop[11]; $product = $filesop[12]; $grade = $filesop[13]; $potential = $filesop[14]; $firstname = $filesop[15]; $lastname = $filesop[16]; $designation = $filesop[17]; $mobile = $filesop[18]; $primary_phone = $filesop[19]; $primary_email = $filesop[20]; $address_type = $filesop[21]; $address1 = $filesop[22]; $address2 = $filesop[23]; $state = $filesop[24]; $country = $filesop[25]; $hgf = "INSERT INTO temp_const set custid='$name', zone='$zone', city='$city', category='$category', focus='$focus', customer_type='$customer_type', lead_source='$lead_source', exhibition='$exhibition', organization_name='$organization_name', assign_to='$assign_to', description='$description', division='$division', product='$product', grade='$grade', potential='$potential', firstname='$firstname', lastname='$lastname', designation='$designation', mobile='$mobile', primary_phone='$primary_phone', primary_email='$primary_email', address_type='$address_type', address1='$address1', address2='$address2', state='$state', country='$country' "; $sql = mysql_query($hgf); $c = $c + 1; } } if($sql){ echo "You database has imported successfully. You have inserted ". $c ."recoreds"; }else{ echo " Sorry! There is some problem."; } } ?> 

您可以在要检查重复的字段上创build一个唯一的索引,假定它是fieldA,fieldB和fieldC

 ALTER TABLE destTable add unique key idx_abc (fieldA,fieldB,fieldC); 

在此之后,您可以使用IGNORE选项将您的tmp表复制到destTable中

 INSERT IGNORE INTO destTable SELECT * FROM temp_const; 

或者只使用你想要的字段。