Raschen
@Raschen

Проверка существующей записи в mysql средствами php?

Задача такая просканировать директорию с файлами на наличие *.zip допустим получили результат
files
  1.zip
  2.zip
  3.zip
  ...
  ...
  183.zip

после проверяем в mysql есть ли запись 1.zip в таблице file_name если нету добавляем если есть то переходим к проверке следующего файла

Cо сканирование вроде разобрался
$dir = "/home/main/files";
$list = scandir($dir);

foreach ($list as $item) 
{
	echo "$item" . PHP_EOL;
}


вот что у меня получилось данные добавляются только нет проверки на существующие записи
$dir = "/home/main/files";
$list = scandir($dir);

foreach ($list as $item) 
{
	$connect->query("INSERT INTO `cloud` (`id`, `file_name`, `date`) VALUES (NULL, '$item', NULL)");
	echo "$item" . PHP_EOL;
}
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Проверку лучше делать или запросом count или вообще сделать 1 запрос, выбрать все и проверять в php in_array(), что бы не лазить в базу каждый раз. Но зависит от кол-ва записей в базе.
Ответ написан
Комментировать
Raschen
@Raschen Автор вопроса
А можно пример желательно попроще как это делается чтобы логику понять как это все работает
Записей небольшие 2000
Ответ написан
Комментировать
AK-VoronM
@AK-VoronM
"Мало-мало программист"
Добрый день. Если имя файла уникальное - нужно сделать его индексом. Тогда можно будет использовать INSERT IGNORE. Эта конструкция вставит запись только если ключ уникален, если нет - ничего не сделает. Ссылка на документацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы