I am trying to import a csv file inside mysql using a php page.
I have a problem with it being ignored. How can I do to solve it?
I leave the code of the import.php file, thanks in advance.
C:UsersvenicDesktoplinklogo_ariel.png
C:UsersvenicDesktoplinklogo_ariel.png
Andrea
<?php
include_once("db_connect.php");
if(isset($_POST['import_data'])){
// validate to check uploaded file is a valid csv file
$file_mimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain');
if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'],$file_mimes)){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
$csv_file = fopen($_FILES['file']['tmp_name'], 'r');
//fgetcsv($csv_file);
// get data records from csv file
while(($emp_record = fgetcsv($csv_file)) !== FALSE){
// Check if employee already exists with same email
$sql_query = "SELECT emp_id, campo_1a, campo_1b, campo_1a_1, campo_1c, campo_2a, campo_2b, campo_3a, campo_3a_1, campo_3b, campo_3c, campo_4a, campo_5a, campo_5b, campo_6a, campo_7a, campo_7b, campo_8a, campo_8b, campo_9a, campo_9b, campo_10a, campo_10b, campo_10a1, campo_10b1, campo_11a, campo_11b, campo_12a, campo_12b, campo_13a, campo_13b, campo_13c, campo_14, campo_15, campo_16, campo_17, campo_18, campo_19, campo_20, campo_21a, campo_21b, campo_21c1, campo_21c2, campo_21c3, campo_21c4, campo_21d, campo_30a, campo_30b, campo_30c, campo_31, campo_32, campo_33, campo_34, campo_35, campo_35_1, campo_36, campo_37, campo_38, campo_39, campo_39_1, campo_40, campo_41, campo_42, campo_43, quantita_d, quantita_e FROM emp WHERE campo_22 = '".$emp_record[1]."'";
$resultset = mysqli_query($conn, $sql_query) or die("database error:". mysqli_error($conn));
// if employee already exist then update details otherwise insert new record
if(mysqli_num_rows($resultset)) {
$sql_update = "UPDATE emp set campo_1a='".$emp_record[2]."', campo_1b='".$emp_record[3]."', campo_1a_1='".$emp_record[4]."', campo_1c='".$emp_record[5]."', campo_2a='".$emp_record[6]."', campo_2b='".$emp_record[7]."', campo_3a='".$emp_record[8]."', campo_3a_1='".$emp_record[9]."', campo_3b='".$emp_record[10]."', campo_3c='".$emp_record[11]."', campo_3d='".$emp_record[12]."', campo_4a='".$emp_record[13]."', campo_5a='".$emp_record[14]."', campo_5b='".$emp_record[15]."', campo_6a='".$emp_record[16]."', campo_6b='".$emp_record[17]."', campo_7a='".$emp_record[18]."', campo_7b='".$emp_record[19]."', campo_8a='".$emp_record[20]."', campo_8b='".$emp_record[21]."', campo_9a='".$emp_record[22]."', campo_9b='".$emp_record[23]."', campo_10a='".$emp_record[24]."', campo_10b='".$emp_record[25]."', campo_10a1='".$emp_record[26]."', campo_10b1='".$emp_record[27]."', campo_11a='".$emp_record[28]."', campo_11b='".$emp_record[29]."', campo_12a='".$emp_record[30]."', campo_12b='".$emp_record[31]."', campo_13a='".$emp_record[32]."', campo_13b='".$emp_record[33]."', campo_13c='".$emp_record[34]."', campo_14='".$emp_record[35]."', campo_15='".$emp_record[36]."', campo_16='".$emp_record[37]."', campo_17='".$emp_record[38]."', campo_18='".$emp_record[39]."', campo_19='".$emp_record[40]."', campo_20='".$emp_record[41]."', campo_21a='".$emp_record[42]."', campo_21b='".$emp_record[43]."', campo_21c1='".$emp_record[44]."', campo_21c2='".$emp_record[45]."', campo_21c3='".$emp_record[46]."', campo_21c4='".$emp_record[47]."', campo_21d='".$emp_record[48]."', campo_30a='".$emp_record[49]."', campo_30b='".$emp_record[50]."', campo_30c='".$emp_record[51]."', campo_31='".$emp_record[52]."', campo_32='".$emp_record[53]."', campo_33='".$emp_record[54]."', campo_34='".$emp_record[55]."', campo_35='".$emp_record[56]."', campo_35_1='".$emp_record[57]."', campo_36='".$emp_record[58]."', campo_37='".$emp_record[59]."', campo_38='".$emp_record[60]."', campo_39='".$emp_record[61]."', campo_39_1='".$emp_record[62]."', campo_40='".$emp_record[63]."', campo_41='".$emp_record[64]."', campo_42='".$emp_record[65]."', campo_43='".$emp_record[66]."', quantita_d='".$emp_record[67]."', quantita_e='".$emp_record[68]."' WHERE campo_22 = '".$emp_record[1]."'";
mysqli_query($conn, $sql_update) or die("database error:". mysqli_error($conn));
} else{
$mysql_insert = "INSERT INTO emp (campo_22, campo_1a, campo_1a_1, campo_1b, campo_1c, campo_2a, campo_2b, campo_3a, campo_3a_1, campo_3b, campo_3c, campo_3d, campo_4a, campo_5a, campo_5b, campo_6a, campo_6b, campo_7a, campo_7b, campo_8a, campo_8b, campo_9a, campo_9b, campo_10a, campo_10b, campo_10a1, campo_10b1, campo_11a, campo_11b, campo_12a, campo_12b, campo_13a, campo_13b, campo_13c, campo_14, campo_15, campo_16, campo_17, campo_18, campo_19, campo_20, campo_21a, campo_21b, campo_21c1, campo_21c2, campo_21c3, campo_21c4, campo_21d, campo_30a, campo_30b, campo_30c, campo_31, campo_32, campo_33, campo_34, campo_35, campo_35_1, campo_36, campo_37, campo_38, campo_39, campo_39_1, campo_40, campo_41, campo_42, campo_43, quantita_d, quantita_e)VALUES('".$emp_record[1]."', '".$emp_record[2]."', '".$emp_record[3]."', '".$emp_record[4]."', '".$emp_record[5]."', '".$emp_record[6]."', '".$emp_record[7]."', '".$emp_record[8]."', '".$emp_record[9]."', '".$emp_record[10]."', '".$emp_record[11]."', '".$emp_record[12]."', '".$emp_record[13]."', '".$emp_record[14]."', '".$emp_record[15]."', '".$emp_record[16]."', '".$emp_record[17]."', '".$emp_record[18]."', '".$emp_record[19]."', '".$emp_record[20]."', '".$emp_record[21]."', '".$emp_record[22]."', '".$emp_record[23]."', '".$emp_record[24]."', '".$emp_record[25]."', '".$emp_record[26]."', '".$emp_record[27]."', '".$emp_record[28]."', '".$emp_record[29]."', '".$emp_record[30]."', '".$emp_record[31]."', '".$emp_record[32]."', '".$emp_record[33]."', '".$emp_record[34]."', '".$emp_record[35]."', '".$emp_record[36]."', '".$emp_record[37]."', '".$emp_record[38]."', '".$emp_record[39]."', '".$emp_record[40]."', '".$emp_record[41]."', '".$emp_record[42]."', '".$emp_record[43]."', '".$emp_record[44]."', '".$emp_record[45]."', '".$emp_record[46]."', '".$emp_record[47]."', '".$emp_record[48]."', '".$emp_record[49]."', '".$emp_record[50]."', '".$emp_record[51]."', '".$emp_record[52]."', '".$emp_record[53]."', '".$emp_record[54]."', '".$emp_record[55]."', '".$emp_record[56]."', '".$emp_record[57]."', '".$emp_record[58]."', '".$emp_record[59]."', '".$emp_record[60]."', '".$emp_record[61]."', '".$emp_record[62]."', '".$emp_record[63]."', '".$emp_record[64]."', '".$emp_record[65]."', '".$emp_record[66]."', '".$emp_record[67]."', '".$emp_record[68]."')";
mysqli_query($conn, $mysql_insert) or die("database error:". mysqli_error($conn));
}
}
fclose($csv_file);
$import_status = '?import_status=success';
} else {
$import_status = '?import_status=error';
}
} else {
$import_status = '?import_status=invalid_file';
}
}
header("Location: index.php".$import_status);
?>
2
Answers
Backslashesin your CSV file are being ignored when you try to import it into MySQL using PHP. This is likely due to the fact that backslashes are used as escape characters in PHP strings, and therefore they are being interpreted as such.
You should prepare a parameterised query and then bind values to that query.
This has a number of benefits,
Peter O'Toole
andC:
handled safely automatically.