У меня есть серьезный вопрос об импорте данных из CSV в базу данных. Импорт сценария:PHP skip duplicates
if (file_exists('temp.csv')) {
$i=0;
require "connection.php";
$handle = fopen("temp.csv", "r");
try {
$import= $db->prepare("INSERT INTO adherence(
dateandtime,
lastname,
firstname,
paidtime,
approvedtime,
notadhering) VALUES(
?,?,?,?,?,?)");
$i = 0;
while (($data = fgetcsv($handle, 1000, ",", "'")) !== FALSE) {
if($i > 0) {
$data = str_replace('"', '', $data);
$myDate = date("Y/m/d",strtotime(str_replace('/','-',$data[0])));
$import->bindParam(1, $myDate, PDO::PARAM_STR);
$import->bindParam(2, $data[1], PDO::PARAM_STR);
$import->bindParam(3, $data[2], PDO::PARAM_STR);
$import->bindParam(4, $data[3], PDO::PARAM_STR);
$import->bindParam(5, $data[4], PDO::PARAM_STR);
$import->bindParam(6, $data[5], PDO::PARAM_STR);
$import->execute();
}
$i++;
}
fclose($handle);
Проблема, мне нужно какое-то условная логика для проверки, если строка Allready существует в базе данных перед импортом, и пропустить его - если он существует. Как обращаться с такими вещами?
SO - каковы критерии, которые существуют в этой строке? –
Добавьте те атрибуты/столбцы, которые делают 2 строки дубликатом как ключ/индекс mysql. Затем используйте «insert ignore ...» для вставки только несуществующих строк. – maxhb
Проблема в том, что есть несколько таблиц, которые содержат 8 элементов в таблице, 7 из них похожи на ключи. – JustinasT