Как я могу создать событие MySQL для автоматического добавления недавно перемещенных файлов изображений с моего ноутбука?

Я пытаюсь создать событие MySQL, чтобы в мою базу данных MySQL автоматически добавлялись файлы. По сути, я сейчас использую сервер XAMPP, поэтому все файлы изображений, связанные с моим веб-сайтом / базой данных, находятся в каталоге «C: \ Users \ Mus \ server \ htdocs \ images». Всякий раз, когда я помещаю файл изображения в этот каталог; Мне нужно, чтобы этот файл автоматически загружался в базу данных через событие MySQL, которое я пытаюсь создать. Это означает, что база данных должна постоянно проверять наличие новых файлов с интервалами времени, скажем, 5 секунд, и, если новый файл был добавлен в указанный каталог, автоматически будет создана новая запись для изображения (в указанной таблице) и на в то же время изображение будет загружено в ту же таблицу в базе данных.

Код SQL, который я использовал до сих пор:

CREATE EVENT 'eventnov'
ON SCHEDULE EVERY 5 SECOND
STARTS '2015-10-27 00:00:00'
ENDS '2015-10-28 00:00:00'
DO INSERT INTO 'images_11_nov'
SELECT NOW();

Я понимаю, что строки 5 и 6, вероятно, совершенно неверны, но я попытался исследовать существующие проблемы и не нашел удачи. Я посмотрел на официальная документация MySQL и, к сожалению, я не могу найти ничего, имеющего отношение к моей конкретной проблеме. Я не знаю синтаксиса, чтобы MySQL делал все следующее в одном событии MySQL:

  1. Проверьте указанный каталог файлов (C: \ Users \ Mus \ server \ htdocs \ images) с заданными временными интервалами в 5 секунд и ЕСЛИ в этом каталоге появилось новое перемещенное изображение …. (номер 2)
  2. Автоматически создать запись в таблице ‘images_11_nov’ в качестве заполнителя для нового изображения и …. (номер 3)
  3. Автоматически загрузите эти новые файлы изображений (которые недавно были перемещены в «C: \ Users \ Mus \ server \ htdocs \ images») и вставьте их в таблицу images_11_nov.

Может ли кто-нибудь помочь мне завершить приведенный выше код для выполнения этих необходимых функций? Если мне нужно предоставить больше информации, пожалуйста, дайте мне знать, и я обязуюсь.

  • Редактировать 1: имена столбцов для таблицы ‘images_11_nov’: ‘title’ (varchar), ‘imgdata’ (BLOB), ‘picid’ (INT), ‘datetime’ (метка времени).
  • Редактировать 2: я изменил код SQL в отношении ответа Jayesh Dhandha, но я все еще получаю синтаксические ошибки в MySQL. Обновленный код выглядит следующим образом:

CREATE EVENT 'eventnov'
ON SCHEDULE EVERY 5 SECOND
STARTS '2015-10-27 00:00:00'
ENDS '2015-10-28 00:00:00'
SELECT count(*) 'images_11_nov'
system(ls C:\Users\Mus\server\htdocs\images | wc -l)
system(ls -t | head -1)
DO INSERT INTO 'images_11_nov';

4

Решение

Да, это очень легко. Вы должны сделать следующее задание.

  1. Получить количество строк в вашей таблице с помощью select count(*) table_name;
  2. используйте системную команду в указанном вами каталоге

    system(ls C:\Users\Mus\server\htdocs\images | wc -l)

  3. Это даст вам количество файлов, доступных в указанном каталоге.

  4. Теперь сравните это количество со счетчиком базы данных и проверьте, равны они или нет.

  5. Если оно увеличено на 1, запустите простую системную команду, чтобы узнать последний добавленный файл в каталоге.

  6. system(ls -t | head -1)

Вот ls -t перечислит файлы по времени и трубу с голова даст вам имя последнего добавленного файла.

Я надеюсь, что это поможет вам.

С Уважением,
Джаеш Дхандха

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]