我需要制作将sql文件或csv文件上传到数据库的表单。 如果用户上传example.sql,则所有数据都将上传到数据库中。 我需要检查数据库和表,如果表中的值存在,该值将不会插入到数据库表中。如果不存在,它将上传到数据库表中。我不希望上传的数据与表中的现有数据重复
这是我上传到我的数据库的 Php ,名为ituser_sales,名为site_sales。
if(isset($_FILES['file'])){
$file = $_FILES['file'];
//file properties
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
//extension
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
$actionstatus = "<center><div class=\"alert alert-success\" style=\"max-width: 250px;\">
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>
User Update Successful.
</div></center>";
$allowed = array('csv', 'sql', 'txt');
if (in_array($file_ext, $allowed)){
if($file_error === 0){
if ($file_size <= 1000000){
$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_destination = 'uploads/'.$file_name_new;
if(move_uploaded_file($file_tmp, $file_destination)){
**$query ="LOAD DATA LOCAL INFILE '".$file_destination."' INTO TABLE site_sales
FIELDS TERMINATED BY ','
IGNORE 1 LINES;**";
$result = mysqli_query($con,$query);
if ($result){
echo $actionstatus;
echo "Your file name will be <h4>$file_name_new</h4>";
} else {
echo '<br><button onclick="goBack()">Go Back</button><br><br>';
echo '<script>
function goBack() {
window.history.back();
}
</script>';
die (mysqli_error());
include("includes/footer.php");
}
}
}
}
} else{
echo "<br>Your file is either none of these extensions (.$allowed[0], .$allowed[1], .$allowed[2]) <br>";
echo '<br><button onclick="goBack()">Go Back</button><br>';
echo '<script>
function goBack() {
window.history.back();
}
</script>';
die (mysqli_error($con));
include("includes/footer.php");
}
}
我需要更改该查询以执行检查表中的值。 以下是我需要上传的数据示例:
sales_id,storenumber,busidate,纯销售,税务,disc_amt,SKVOC,NETAMT,TRNCNT ,1,2018-01-01,9468.82,560.96,0,920,8548.82,212
example.sql中的数据
here is the example in the database (ituser_sales), table (site_sales) after upload the sql file Here is the duplicate example if i upload again
如果值存在,则数据不会复制存在的数据。 查询将读取下一行(新数据)以检查它是否存在,直到sql文件中的最后一个数据
有这个想法吗? 提前谢谢。