因为我的网页上有很多流量,其中有一个在线聊天我的mysql表"消息"人满为患。我不想使用TIMESTAMPDIFF删除数据,但我想将它们移到历史悠久的"表。无论如何在10分钟(600s)之后将它们移到历史性的桌子上?
<!DOCTYPE
<html lang="en">
<head>
</head>
<body>
<form method="post" action="test.php">
<label for="firstname">First name:</label>
<input type="text" id="firstname" name="firstname" /><br />
<input type="submit" value="Report Abduction" name="submit" />
</form>
</body>
</html>
HTML(测试)文件
<html>
<head>
</head>
<body>
<?php
include("delete.php");
$first_name = $_POST['firstname'];
$dbc = mysqli_connect ('localhost','julianbuchel','****','deletecontent')
or die("Ooops, we couldn't connect to the database...");
$query = "INSERT INTO messages
VALUES ('$first_name')";
if (!mysqli_query($dbc,$query)) {
die('Error: ' . mysqli_error($dbc));
}
mysqli_close($dbc);
echo 'Thanks';
?>
</body>
</html>
PHP(测试)文件
<?php
$server = 'localhost';
$user = 'julianbuchel';
$password = '******';
$link = mysql_connect($server,$user,$password);
$db = mysql_select_db('test');
$ssql = "DELETE FROM messages";
$r = mysql_query($ssql, $use);
?>
答案 0 :(得分:1)
好的,谢谢你的想法。我所做的是我在我的mysql数据库中设置了一个event_schedule bei放入命令
USE GLOBAL event_schedule ='ON'
than:CREATE EVENT name_of_event 每个小时约1小时 DO DELETE FROM table_name
我知道这不是我问题的完美答案,但这非常合适!
答案 1 :(得分:0)
Ondkloss对cron工作的建议是好的(特别是如果你是一个shell /脚本人)。如果您对数据库本身更熟悉,MySQL确实有一个调度程序:http://dev.mysql.com/doc/refman/5.1/en/events.html
除非我遗漏了某些内容,否则你的DELETE语句将会删除所有内容。如果你的架构支持它,那么像这样(未经测试的)语句如何:
DELETE FROM messages
WHERE message_time <= date_sub(now(), interval 10 minute)