Supprimer des lignes d'une table SQL après X jours.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer des lignes d'une table SQL après X jours.

Re: Supprimer des lignes d'une table SQL après X jours.

par Saian » 16 mars 2021, 00:42

Bonsoir, à priori vous devriez avoir soit un echo soit l'autre. Vous n'en avez aucun alors soit une erreur de syntaxe mais j'en vois pas ou une erreur fatale qui ne s'affiche pas, soit le php qui ne s'exécute pas et est simplement affiché dans la page (non visible car interprété comme une balise html) ?

Re: Supprimer des lignes d'une table SQL après X jours.

par hanni13 » 15 mars 2021, 18:14

Comment ajouter un catch et sur quelle ligne ?
Pouvez vous corriger mes code SVP ?
Merci d'avance,

Re: Supprimer des lignes d'une table SQL après X jours.

par or 1 » 15 mars 2021, 17:55

try {
doit être suivi d'un catch, qu'il n'y a pas dans le code donné ici.

Re: Supprimer des lignes d'une table SQL après X jours.

par hanni13 » 15 mars 2021, 17:41

Non, le "Record deleted successfully" ne s'affiche pas. Je vérifie la table et je constate qu'aucune ligne est supprimée!
Si j'exécute la requête depuis PHPmyAdmin que tout va bien !

Re: Supprimer des lignes d'une table SQL après X jours.

par or 1 » 15 mars 2021, 17:19

"Record deleted successfully" est bien affiché ? il y a quelque chose à supprimer ? que dit https://www.php.net/manual/fr/pdostatement.rowcount.php ?

Supprimer des lignes d'une table SQL après X jours.

par hanni13 » 15 mars 2021, 17:16

Bonjour à vous tous,

J'ai une table SQL nommée "Utilisateurs" qui contient un champ TIMESTAMP nommé "creation_date" qui enregistre la date sous forme AAAA-MM-JJ Heure:mm:s
Pour supprimer toutes les lignes enregistrées avant 10 jours, j'exécute cette requête depuis l'interface PHPmyAdmin
DELETE FROM Utilisateurs WHERE creation_date < date_sub(CURRENT_DATE,INTERVAL 10 day)
et tout va bien mais lorsque j'exécute la même requête en php
$sql = "DELETE FROM Utilisateurs WHERE creation_date < date_sub(CURRENT_DATE,INTERVAL 10 day)";
rien ne se passe !
Ci-dessous le codes de mon fichier PHP :
<?php
$servername = "localhost";
$username = "name";
$password = "pwd";
$dbname = "base";
 
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    /* set the PDO error mode to exception */
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

     /*sql to delete a record*/
    $sql = "DELETE FROM Utilisateurs WHERE creation_date < date_sub(CURRENT_DATE,INTERVAL 10 day)";
    /*use exec() because no results are returned*/
    $conn->exec($sql);
    echo "Record deleted successfully";
    }
   catch(PDOException $e)
    {
    echo $sql . "
" . $e->getMessage();
    }

  $conn = null;
 ?>
C'est sûr qu'il y a quelque chose qui manque #-o