我有一个 mysql 表,我希望它在每晚午夜被“清空”。我在网上搜索了一个答案,但没有找到任何似乎对我有帮助的东西。我的想法是使用 javascript 获取当前时间,然后运行一个 if 语句,看看它是否等于午夜,以及是否要执行一个删除信息的 php 脚本。
Javascript:
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
if(t == 12:00:00 AM){
$.ajax({
URL: 'delete.php';
});
};
};
删除.php:
<?php
require 'connect.php';
mysql_query("DELETE * FROM messages;");
?>
我已经通过将 if 语句中的时间设置为比实际时间早几分钟的时间来测试它,但它不起作用。
最佳答案
实现您自己的事件调度程序,尤其是作为使用 JavaScript 的网页是一个坏主意。 要么用于那个
- 一个cron作业通过 mysql 命令行界面运行
DELETE
语句
/path/to/mysql -u<user> -p"<password>" <db_name> -e "delete from messages"
- 或MySQL event ,例如
CREATE EVENT delete_messages_at_midnight
ON SCHEDULE EVERY 1 DAY STARTS CURDATE() + INTERVAL 1 DAY
DO DELETE FROM messages;
如果您使用 MySQL 事件方法:
- 使用
SHOW PROCESSLIST
检查事件调度程序是否已启用。如果它打开,您应该看到用户“event_scheduler
”的进程“Daemon
”。 - 使用
SET GLOBAL event_scheduler = ON;
如果当前未启用调度程序,则启用它。 - 有关配置事件调度程序的更多信息,请阅读 here
关于javascript - 如何在午夜从表中删除mysql数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20533891/