PHP:在本月初重置MySQL数据库表

时间:2019-04-24 11:18:34

标签: php mysql

我用php和html编写了一个页面。在输入事件名称和状态等数据后,将它们插入数据库的表中。我需要在每月的第一天重置“出席”列,以准备接收新的出勤数据。

我如何确保当日期等于01 /月/年时,“出勤”列会被重置?

这是我尝试使用的代码,但显然不起作用:

<?php 
$luca = "Presente";
$mysqli = new mysqli('localhost', 'root', 'password');
if ($mysqli->connect_error) {
    die('Errore di connessione (' . $mysqli->connect_errno . ')' . $mysqli->connect_error);
}


// Creo il database
$mysqli->query("CREATE DATABASE presenze");
// Seleziono il database
$mysqli->query("USE presenze");

$mysqli->query("CREATE TABLE 'presenze'
                           ( 'id' INT ( 5 ) NOT NULL AUTO_INCREMENT,
                 'nome' VARCHAR(30) NOT NULL ,
                             'cognome' VARCHAR(30) NOT NULL ,
                             'presenze' TEXT NOT NULL)");
$query = "INSERT INTO presenze (nome, cognome, presenza, id) VALUES ('Luca', 'Gamerro', '$luca', '1')";
if (!$mysqli->query($query)):
    die($mysqli->error);
endif;

if (date() == '01/**/**'):
    $query = $mysqli->prepare("DELETE FROM presenze WHERE id = 1");
    $query->bind_param('i', $id);
    $result = $query->execute();
endif;
?>

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用MySQL Scheduled Event。只需通过PHP或直接SQL命令将此查询输入数据库中即可。

CREATE EVENT your_event ON SCHEDULE 
       EVERY 1 MONTH
       STARTS '2016-05-01 00:00:00'
       ON COMPLETION PRESERVE ENABLE
    DO
DELETE * FROM table_name WHERE id = 1