¿Cómo borro las filas de datos de la tabla mysql automáticamente con 24 horas después de los datos en la tabla?

Por ejemplo, tengo un progtwig de ingreso de datos Y quiero eliminar mis datos automáticamente después de 1 día de esta información que ingresé. ¿Cómo hago eso?
Alguien puede explicar en el código?

Create.php

     <?php require_once "db.php"; require_once "function-add.php"; if( isset($_POST['submit']) ){ $name_portofolio = $_POST['name_portofolio']; $info_portofolio = $_POST['info_portofolio']; $picture_portofolio = $_FILES['picture_portofolio']; $tipe_file = $_FILES['picture_portofolio'] ['type']; $tmp_file = $_FILES['picture_portofolio']['tmp_name']; $ukuran_file = $_FILES['picture_portofolio'] ['size']; if(!empty(trim($name_portofolio)) && !empty(trim($info_portofolio)) ) { if(!empty($_FILES['picture_portofolio']['tmp_name']) ){ if($tipe_file === "image/jpeg" || $tipe_file === "image/png" || $tipe_file === "image/jpg" ){ if($ukuran_file    
name portofolio :
Info portofolio :
picture portofolio :

function-add.php

 <?php function create_data($name_portofolio, $info_portofolio, $picture_portofolio){ global $connect; $name_portofolio = mysqli_real_escape_string($connect, $name_portofolio); $info_portofolio = mysqli_real_escape_string($connect, $info_portofolio); $filePath = "picture/".basename($picture_portofolio["name"]); move_uploaded_file($picture_portofolio["tmp_name"], $filePath); $query = "INSERT INTO portofolio (name_portofolio, info_portofolio, picture_portofolio) VALUES ('$name_portofolio', '$info_portofolio', '$filePath')"; if( mysqli_query($connect, $query) ){ return true; }else{ return false; } } 

db.php

 connect_error) { die("connection failed : " . $connect->connect_error); } else { // echo "Successfully Connected"; } ?> 

Gracias .

Intenta usar eventos regulares. Para comenzar, habilite el Progtwigdor de eventos usando

 SET GLOBAL event_scheduler = ON; 

Después de eso, puede organizar un evento que verifique el tiempo de creación de las filas. Por ejemplo

 CREATE EVENT utitization ON SCHEDULE EVERY 1 HOUR ENABLE DO DELETE FROM MyTable WHERE `timestamp_column` < CURRENT_TIMESTAMP - INTERVAL 24 HOUR; 

Si no hay una columna con marca de tiempo de una creación de fila en su tabla, puede crear un desencadenante que insertará la marca de tiempo actual y el identificador de fila insertado en la tabla auxiliar.

 CREATE TRIGGER logCreator AFTER INSERT ON MainTable FOR EACH ROW INSERT INTO LogTable (MainID, Created) VALUES(NEW.id, CURRENT_TIMESTAMP); 

Luego puede usar este registro para obtener las claves de la tabla principal que se creó antes de la hora específica.

 delimiter | CREATE EVENT cleaner ON SCHEDULE EVERY 1 HOUR ENABLE DO BEGIN DECLARE MaxTime TIMESTAMP; SET MaxTime = CURRENT_TIMESTAMP - INTERVAL 24 HOUR; DELETE FROM MainTable WHERE id IN (SELECT MainID FROM LogTable WHERE Created < MaxTime); DELETE FROM LogTable WHERE LogTable.Created < MaxTime; END | delimiter ; 

En su tabla “portofolio” agregue la columna created_at (datetime). Luego, en Cron Job, compruebe que la fecha actual excede created_at (datetime) con 24 horas y elimine los registros mediante la consulta mysql, como

 DELETE FROM portofolio WHERE created_at<=DATE_SUB(NOW(), INTERVAL 1 DAY) 

Y ejecute el archivo de trabajo cron cada minuto