When submit button clicked, I get duplicate date in MySQL database, which means a single row in CSV file is inserted twice and get identical records in database.
My php code goes here.
if(isset($_POST['submit'])){
if( $_FILES['file']['name']){
$filename = explode('.',$_FILES['file']['name']);
if ($filename[1] == 'csv'){
$handle = fopen($_FILES['file']['tmp_name'],"r");
if($_POST['dataType']=='aType'){
while ($data = fgetcsv($handle)){
$item0 = mysqli_real_escape_string($con,$data[0]);
$item1 = mysqli_real_escape_string($con,$data[1]);
$item2 = mysqli_real_escape_string($con,$data[2]);
$item3 = mysqli_real_escape_string($con,$data[3]);
$sql = "insert into `table_XX`(`Column_A`,`Column_B`,`Column_C`,`Column_D`) VALUES ('$item0','$item1','$item2','$item3')";
mysqli_query($con,$sql);
}
if(!(mysqli_query($con,$sql))) echo "something is wrong!";
fclose($handle);
}
}
}
}
My Html code goes here.
<form method="post" action="import.php" enctype="multipart/form-data">
<select name="dataType" class="form-control">
<option selected="selected">pls select data</option>
<option>aType</option>
</select>
<input type="file" name="file">
<input type="submit" name="submit" value="submit">
</form>
What's wrong with my code? Thanks.
Edit:
Later I know that this line of code cause this mistake.
if(!(mysqli_query($con,$sql))) echo "something is wrong!"
However, it is a bad habit to use code like this to check our query?
if(mysqli_query($con,$sql))
By the way, how can I use a Array to store the value from
mysqli_real_escape_string
instead of using this x4
$item0 = mysqli_real_escape_string($con,$data[0]);
$item1 = mysqli_real_escape_string($con,$data[1]);
$item2 = mysqli_real_escape_string($con,$data[2]);
$item3 = mysqli_real_escape_string($con,$data[3]);