如何创建 MySQL 事件以自动添加笔记本电脑中新移动的图像文件?
Posted
技术标签:
【中文标题】如何创建 MySQL 事件以自动添加笔记本电脑中新移动的图像文件?【英文标题】:How can I create a MySQL Event to automatically add newly moved image files from my laptop? 【发布时间】:2016-01-26 09:41:56 【问题描述】:我正在尝试创建一个 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 行可能完全错误,但我尝试研究现有问题,但没有发现任何运气。我查看了official MySQL documentation,不幸的是我找不到与我的具体问题相关的任何内容。我不知道让 MySQL 在单个 MySQL 事件中执行以下所有操作的语法:
-
以 5 秒的设定时间间隔检查指定的文件目录 (C:\Users\Mus\server\htdocs\images),如果有新移动的图像进入所述目录......(编号 2)李>
自动在 'images_11_nov' 表中创建一个条目作为新图像的占位符和....(编号 3)
自动上传这些新图像文件(最近已移至“C:\Users\Mus\server\htdocs\images”)并将它们插入到“images_11_nov”表中。
有人可以帮我完成上面的代码来执行这些必要的功能吗?如果我需要提供更多信息,请告诉我,我将尽义务。
编辑 1:“images_11_nov”表的列名称为“title”(varchar)、“imgdata”(BLOB)、“picid”(INT)、“datetime”(时间戳)。 编辑 2:我已经更改了有关 Jayesh Dhandha 答案的 SQL 代码,但我仍然在 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';
【问题讨论】:
为什么不使用每 5 分钟运行一次并检查新文件的 cron 作业? 我一直在查找有关 cron 作业的教程,但实现 cron 作业来执行这些相同的功能似乎更加困难。我已经有了这个 SQL 查询所需的一些代码;它只需要额外的 2 或 3 行即可完成。 【参考方案1】:是的,这很容易。您必须完成以下任务。
使用select count(*) table_name;
获取表中的行数
在您提到的目录上使用系统命令
system(ls C:\Users\Mus\server\htdocs\images | wc -l)
这将为您提供上述目录中可用的文件数。
现在将此计数与数据库的计数进行比较,并检查两者是否相等。
如果加1则运行简单的系统命令可以知道目录中最新添加的文件。
system(ls -t | head -1)
这里 ls -t 将按时间列出文件,带有 head 的管道将为您提供最新添加的文件的名称。
希望对你有所帮助。
问候, Jayesh Dhandha
【讨论】:
道歉,但我不明白。你想让我把它添加到我现有的 SQL 代码中吗?如果是这样,我应该从我的代码中删除哪些部分? 我将编辑主帖并修改我的代码以纳入您的建议;我不完全理解您的解决方案,因此我的代码中可能会出现错误。 如果我添加了两个文件?用那个 1 做一个 var?以上是关于如何创建 MySQL 事件以自动添加笔记本电脑中新移动的图像文件?的主要内容,如果未能解决你的问题,请参考以下文章