php 쿼리 15분 후에 레코드 삭제




액세스 삭제 쿼리 (2)

비활성 시스템이 있습니다. 15 분 후에 비활성 테이블에서 사용자를 삭제해야합니다. 또한 해당 테이블에서 찾을 수없는 경우 사용자를 기록하는 코드가 있습니다. 비활성 스크립트는 모든 페이지 새로 고침시 사용자를 업데이트합니다.

이것은 시도한 비활성 코드이며 지금까지 작동하지 않습니다.

$result = mysqli_query($con,"SELECT * FROM inactive");

while($row = mysqli_fetch_array($result))

if ($row['inactive'] > timestampadd(MINUTE, -15, now()))
  {



    }else {

$db_query = "DELETE FROM inactive WHERE username='$username'";
$result = mysql_query($db_query);


    }

타임 스탬프 필드가있는 경우 단일 쿼리 만 수행 할 수 있으며 선택 항목에서 결과 집합을 반복 할 필요가 없습니다.

DELETE FROM inactive
WHERE timestamp < DATE_SUB(NOW(), INTERVAL 15 MINUTE)

cron 또는 페이지에서 해당 쿼리를 실행할 수 있습니다.


CREATE EVENT IF NOT EXISTS `remove_inactives`
ON SCHEDULE EVERY 15 MINUTE
ON COMPLETION PRESERVE
ENABLE
DO
    DELETE FROM `inactive`
        WHERE `timestamp` < DATE_SUB(NOW(), INTERVAL 15 MINUTE)
;

^ 세트를 사용하고 되풀이되는 MySQL 이벤트를 잊어 버리십시오. 서버가 당신을 위해 일하게하십시오 :)

PHP의 경우 :

mysqli_query($connection, // or mysql_query(
<<<SQL
    CREATE EVENT IF NOT EXISTS `remove_inactives`
    ON SCHEDULE EVERY 15 MINUTE
    ON COMPLETION PRESERVE
    ENABLE
    DO
        DELETE FROM `inactive`
            WHERE `timestamp` < DATE_SUB(NOW(), INTERVAL 15 MINUTE)
    ;
SQL;
); // ends *_query() call

이 서버를 서버에 설치하기 만하면됩니다!





sql-delete