避免重复导入到表中

有没有一种方法,我可以阻止一行数据input到数据库,而我从csv文件导入,以避免重复数据库..

注意:虽然不允许input到数据库中的条目。

这是我正在处理的导入脚本….

<?php session_start(); ?> <?php require('includes/dbconnect.php'); ?> <?php require 'includes/header.inc.php'; ?> <?php if(isset($_POST['SUBMIT'])) { $fname = $_FILES['csv_file']['name'];//Acquire the name of the file $chk_ext = explode(".",$fname); $filename = $_FILES['csv_file']['tmp_name']; $handle = fopen($filename, "r");//Open the file for readability while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $sql = "INSERT into biodata (student_number, fname, lname, level) values('$data[0]','$data [1]','$data[2]','$data[3])"; mysql_query($sql) or die (mysql_error()); } fclose($handle); echo "Successfully Imported"; } else { echo "Invalid File"; } ?> 

如果student_number列是主键,则此脚本不会让您插入具有相同编号的行,只要find一行就会死亡。

如果确实如此,则可以将INSERT INTO table VALUES (...)更改为INSERT INTO table VALUES (...) ON DUPLICATE KEY UPDATE student_number = student_number以便在发生错误时忽略该错误。

参考: http : //dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html

INSERT INTO表VALUES(…)ON DUPLICATE KEYUPDATE student_number = student_number