Datensatz aus PostgreSQL Datenbank löschen

Diskutiere Datensatz aus PostgreSQL Datenbank löschen im MySQL Forum im Bereich Programmierung; Hallo Ihr Lieben, ich habe folgende PostgreSQL Datenbank mit dem Namen fail2ban. Ich möchte per PHP Skript alle Datensätze löschen die älter als...
  • Datensatz aus PostgreSQL Datenbank löschen Beitrag #1
S
stharbich
New member
Beiträge
1
Punkte Reaktionen
0
Hallo Ihr Lieben,
ich habe folgende PostgreSQL Datenbank mit dem Namen fail2ban.
2025_01_06_fail2ban-database.png
Ich möchte per PHP Skript alle Datensätze löschen die älter als 24 Stunden sind. Hierzu habe ich zwei PHP Datein erstellt.
config_new.php (Hält die Informationen für die Verbindung zur Datenbank)
Code:
root@dsme01:~# cat /etc/fail2ban/config_new.php
#!/usr/bin/php
<?php
// postgresql database configuration
$dbserver="localhost";
$dbuser="fail2ban";
$dbpass="##########";
$dbname="fail2ban";
$tablename="fail2ban";
// connect to postgresql database
try {
    $link = new PDO("pgsql:host=$dbserver;dbname=$dbname", $dbuser, $dbpass);
    $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die('Could not connect: ' . $e->getMessage());
}
?>
crontab_new.php (Löscht die Datensätze die älter als 24 Stunden sind per Cron Job)
Code:
root@dsme01:~# cat /etc/fail2ban/cron2ban_new.php
#!/usr/bin/php
<?php
require_once((dirname(__FILE__)) . "/config_new.php");
// query PostgreSQL
$query = "DELETE FROM fail2ban WHERE created < DATE_SUB(NOW() , INTERVAL 1 DAY)";
$stmt = $link->prepare($query);
$stmt->execute();
if ($stmt->execute()) {
    echo "IP delete in the DATABASE";
} else {
    echo "No Dataset delete";
}
exit;
?>
Das ganze schlägt aber bei der Löschung mit folgender Fehlermeldung fehl:
Code:
root@dsme01:/etc/fail2ban# ./cron2ban_new.php
#!/usr/bin/php
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42601]: Syntax error: 7 FEHLER:  Syntaxfehler bei »1«
LINE 1: ...OM fail2ban WHERE created < DATE_SUB(NOW() , INTERVAL 1 DAY)
                                                                 ^ in /etc/fail2ban/cron2ban_new.php:9
Stack trace:
#0 /etc/fail2ban/cron2ban_new.php(9): PDOStatement->execute()
#1 {main}
  thrown in /etc/fail2ban/cron2ban_new.php on line 9
Habt Ihr einen Tipp was ich falsch mache?
Gruß von Stefan Harbich
 
Thema:

Datensatz aus PostgreSQL Datenbank löschen

Oben Unten