Comment faire pour supprimer mysql ligne après le temps passe?
Je n'ai aucune idée de par où commencer avec celui-ci:
J'ai une base de données qui stocke postID
et Date
.
Ce que je veux faire est d'avoir mon site web auto supprimer toutes les lignes où Date
est de moins qu'aujourd'hui. Ce script ne peut pas avoir tout saisie de l'utilisateur à tous. Pas de clics sur le bouton, rien. Le script doit s'exécuter tous les jours à minuit.
J'ai été à la recherche partout pour quelque chose qui fait cela, et j'ai absolument rien trouvé.
Il y a un certain nombre d'aspects: (1) l'écriture de la
J'ai besoin d'aide pour comprendre comment obtenir mon code pour déclencher automatiquement sans intervention de l'utilisateur. Les réponses ci-dessous ont tous souligné à CRON donc je vais regarder à cela.
DELETE
de la déclaration; (2) la création d'un script qui exécute le DELETE
de la déclaration; (3) mettre en place le script à exécuter tous les soirs à minuit. Lequel de ces avez-vous besoin d'aide?J'ai besoin d'aide pour comprendre comment obtenir mon code pour déclencher automatiquement sans intervention de l'utilisateur. Les réponses ci-dessous ont tous souligné à CRON donc je vais regarder à cela.
OriginalL'auteur Sweepster | 2012-03-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le script PHP et utiliser cron sur votre cpanel.
Exemple:
cronjobcommand.php
J'ai joint une capture d'écran ci-dessous pour votre référence.
OriginalL'auteur Mar Cejas
Pour ceux qui sont sur un hébergement mutualisé, comme 1and1, et ne peut pas utiliser cron, voici 2 solutions :
mysql événements vous permettre de passer un temps de déclenchement sur mysql, qui va exécuter quand vous voulez, sans avoir à être déclenché par n'importe quel type de saisie de l'utilisateur
si vous ne pouvez pas créer de mysql événements parce que vous êtes sur 1and1 :(, une alternative est d'utiliser webcron
Vous avez juste besoin de dire webcron l'url du script php que vous souhaitez exécuter, et ils vont la déclencher pour vous à des intervalles que vous voulez
OriginalL'auteur Vic Seedoubleyew
Pourquoi à l'aide de tâches cron tous les jours? Pourquoi ne pas filtrer les données sur la production. Par exemple, dans votre sélectionnez vérifier si le post date est égal à aujourd'hui, avec l'ajout d'une simple
where
:De cette façon, vous n'êtes pas nécessaire à faire de votre base de données de gestions/crontabs spéciales de temps et il sera utilisé seulement pour la base de données de gestions. Ensuite, vous pouvez supprimer les données inutiles à tout moment à l'aide de mysql commande comme:
Désolé pour ma réponse tardive; vous pouvez seulement ajouter de la date limite de temps pour votre comparition (post_date + deadlinetime) dans ce cas.
OriginalL'auteur Mojtaba Rezaeian
La plupart des hôtes de fournir un
cron(8)
service qui peut exécuter des commandes à des moments précis. Vous utilisez lecrontab(1)
programme de gestion de lacrontab(5)
fichier le décrit le moment d'exécution de commandes.Il y a beaucoup de fonctionnalités disponible pour vous, mais si vous écrivez un programme (script shell, php, script, C programme, peu importe) qui exécute le approprié commandes MySQL, vous pouvez appeler le programme via
cron(8)
dans un lieu entièrement les mains hors de la mode.Exécuter
crontab -e
pour modifier votre actuellecrontab(5)
fichier. Si aucune n'existe, nous espérons que vous serez en obtenir un avec une utile d'en-tête. Sinon, copiez ceci:Les colonnes indiquent la minute, l'heure, le jour, le mois et le jour de la semaine pour exécuter des commandes. Tous les chiffres dans les colonnes sont essentiellement ANDed ensemble pour décider du moment pour exécuter des commandes.
Ainsi, à minuit tous les soirs devrait ressembler à ceci:
Il est très souple, donc mettre un certain temps dans la documentation, et vous trouverez de nombreuses utilisations.
OriginalL'auteur sarnold
Vous devez définir
cron
travail, prévue à virer de bord.) pour cela.Un tâche cron est un programme automatique de l'installation pour Linux et systèmes d'exploitation Unix. Il permet à l'utilisateur d'exécuter plusieurs commandes ou des fonctions à une heure et une date spécifiques.
vous avez Tâche cron dans votre cpanel de l'installation. vous devez d'abord faire un script php avec votre logique pour supprimer l'enregistrement après chaque date. date de prise de vue depuis le serveur, et écrire un script pour supprimer.
puis aller à cron onglet dans votre cpanel et faire les réglages de l'intervalle de temps pour exécuter cron et donner le chemin de votre fichier de script php.
OriginalL'auteur
MySQL n'est pas un planificateur de tâches. Donc, vous devez utiliser le planificateur de tâches de votre Système d'Exploitation (CRON sous Linux), ou déjeuner, déjeuner, une tâche de base vérificateur de sous-script pendant le script de la page principale (sur une autre page qui est censé montrer l'évolution des données).
MySQL a Event Scheduler
OriginalL'auteur Skrol29