| | |
| | | $threshold = date('Y-m-d 00:00:00', time() - $days * 86400); |
| | | |
| | | foreach (array('contacts','contactgroups','identities') as $table) { |
| | | |
| | | $sqltable = get_table_name($table); |
| | | |
| | | // also delete linked records |
| | | // could be skipped for databases which respect foreign key constraints |
| | | /* |
| | | if ($table == 'contacts' || $table == 'contactgroups') { |
| | | $ids = array(); |
| | | if ($db->db_provider == 'sqlite' |
| | | && ($table == 'contacts' || $table == 'contactgroups') |
| | | ) { |
| | | $pk = $primary_keys[$table]; |
| | | $memberstable = get_table_name('contactgroupmembers'); |
| | | |
| | | $result = $db->query( |
| | | "SELECT $pk FROM ".get_table_name($table)." |
| | | WHERE del=1 AND changed < ".$db->quote($threshold)); |
| | | |
| | | while ($result && ($sql_arr = $db->fetch_assoc($result))) |
| | | $ids[] = $sql_arr[$pk]; |
| | | |
| | | if (count($ids)) { |
| | | $db->query( |
| | | "DELETE FROM ".get_table_name('contactgroupmembers')." |
| | | WHERE $pk IN (".join(',', $ids).")"); |
| | | "DELETE FROM $memberstable". |
| | | " WHERE $pk IN (". |
| | | "SELECT $pk FROM $sqltable". |
| | | " WHERE del=1 AND changed < ?". |
| | | ")", |
| | | $threshold); |
| | | |
| | | echo $db->affected_rows() . " records deleted from '".get_table_name('contactgroupmembers')."'\n"; |
| | | echo $db->affected_rows() . " records deleted from '$memberstable'\n"; |
| | | } |
| | | } |
| | | */ |
| | | |
| | | // delete outdated records |
| | | $db->query( |
| | | "DELETE FROM ".get_table_name($table)." |
| | | WHERE del=1 AND changed < ".$db->quote($threshold)); |
| | | $db->query("DELETE FROM $sqltable WHERE del=1 AND changed < ?", $threshold); |
| | | |
| | | echo $db->affected_rows() . " records deleted from '$table'\n"; |
| | | } |