データベースの広告テーブルにいくつかの行を追加しました。それらのプロパティには、作成日と有効期限が含まれています。
有効期限が切れた行を自動的に削除するには、php スクリプトが必要です。
Pls は私のプロジェクトを支援します。ありがと
データベースの広告テーブルにいくつかの行を追加しました。それらのプロパティには、作成日と有効期限が含まれています。
有効期限が切れた行を自動的に削除するには、php スクリプトが必要です。
Pls は私のプロジェクトを支援します。ありがと
MySQL のイベント スケジューラを使用して、有効期限が切れたときにそのようなレコードを自動的に削除できます。
CREATE EVENT delete_expired_101
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 WEEK DO
DELETE FROM my_table WHERE id = 101;
または、期限切れのすべてのレコードの自動パージを定期的に実行するには:
CREATE EVENT delete_all_expired
ON SCHEDULE EVERY HOUR DO
DELETE FROM my_table WHERE expiry < NOW();
<?php
$today = getdate();
if($today <= $expirayDate)
{
//your deletion logic
}
?>
もう 1 つの方法は、select クエリをフィルタリングすることです。つまり、有効期限が切れていないすべてのフィールドを非表示にします。
$query = "SELECT * FROM `yourTable` WHERE `expiration` >= NOW();";
あなたが探しているのは ですcrontab
。
これを使用すると、スクリプトを特定の時間に実行するようにスケジュールできます。次に例を示します。
次deleteExpiredRows.php
の間隔で実行5 minutes
updateOnlineUsers.php
2 hours
Cron は非常に使いやすいです。このクイック リファレンス ガイドを確認してください
/path/to/hosting/php /home/user/public_html/script.php
PHP へのパスは異なる場合があるため、この情報についてはホスティング会社にお問い合わせください。crontab の詳細については、stackoverflow を参照してください。
注: Web ホスティング サービスが crontab をサポートしているかどうかを確認することをお勧めします。
これが完了したら、PHP スクリプトを作成して、現在の時刻より古いすべての行を削除するだけです。