Я застрял здесь со специфической проблемой. У меня есть скрипт, который в основном импортирует файл CSV в базу данных, используя fgetcsv()
в php. В этом нет никаких проблем, и я могу также обновить старые записи, используя синтаксис MySQL ON DUPLICATE KEY UPDATE
(я ни в коем случае не эксперт MySQL, поэтому я спрашиваю здесь).
Вот эта часть кода:
$handle = fopen($file,"r");
fgetcsv($handle, 1000, ",");//skip first row since they are headers
while(($fileop = fgetcsv($handle, 1000, ",")) !== false) //read line by line into $fileop
{
//read array values into vars
$item1 = $fileop[0];
$item2 = $fileop[1];
$key = $fileop[2];
// and a couple more
// now INSERT / UPDATE data in MySQL table
$sql = mysql_query("INSERT INTO table (item1,item2,key)
VALUES ('$item1','$item2','$key')
ON DUPLICATE KEY UPDATE item1='$item1',item2='$item2'");
}
Это все отлично работает. Что я застрял в том, что некоторые записи могут быть удалены из фактического CSV (как в ключе, возможно, больше не существует). То, что я хотел бы сделать, это удалить записи из таблицы MySQL, которых больше нет в CSV.
Значение, если $key
ушел из CSV, также удалить эту строку в таблице базы данных. Я полагаю, я бы сделал это до того, как запустил запрос вставки / обновления для таблицы MySQL?
Буду признателен за любую помощь, ребята.