Mailinglisten-Archive |
> On Fri, 19 Feb 1999 13:17:24 +0100, Daniel Stüwe wrote:
>
> >NOCH nicht aus der DB gelöscht nach einer bestimmten Expire-Time.
> >Hat dafuer jemand eine Lösung ?
Hmm, ich habe da mal ein PHP-Script als crontab-job gebaut,
kann aber sein, dass es zu speziell fuer dich ist:
--------------------
#!/usr/local/bin/php -q
<?php
$DBF= $argv[1]; // database
$TBL= $argv[2]; // table in database
$DATFLD= $argv[3]; // date-field in table
$EXPIRE= $argv[4]; // expire days
$ACTION= $argv[5];
/*
What it does:
Open table $TBL in Database $DBF and delete every record, in which the
unix timestamp of $DATFLD is older than $EXPIRE days.
*/
$now= time();
$now -= (86400 * $EXPIRE) ; // 86400 <> 1 day :-)
msql_connect("localhost");
$result= msql($DBF, "select * from $TBL WHERE $DATFLD < '$now'");
$num= msql_numrows($result);
echo "$DBF/$TBL: [$num] records older than $EXPIRE days.\n";
if(isset($ACTION) && strtoupper($ACTION)=="DELETE")
{
$result= msql($DBF, "delete from $TBL WHERE $DATFLD < '$now'");
echo "*** [$num] records deleted ***\n";
}
?>
--------------------
Aufruf (z.b. aus der crontab) dann:
scriptname database table field expir_days [delete]
By(e) Emu
--
| Emilio Paolini <ep_(at)_IM-NETZ.de>......................... 13349 Berlin
| IM-NETZ Internet Services, Berlin............. http://www.IM-NETZ.de
| Telekom ...................... ++49 30 4511000 (Q) und 0177 451 2000
php::bar PHP Wiki - Listenarchive