Page 1 sur 1

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

Posté : 15 mars 2021, 17:16
par hanni13
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

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

Posté : 15 mars 2021, 17:19
par or 1
"Record deleted successfully" est bien affiché ? il y a quelque chose à supprimer ? que dit https://www.php.net/manual/fr/pdostatement.rowcount.php ?

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

Posté : 15 mars 2021, 17:41
par hanni13
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.

Posté : 15 mars 2021, 17:55
par or 1
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.

Posté : 15 mars 2021, 18:14
par hanni13
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.

Posté : 16 mars 2021, 00:42
par Saian
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) ?