Разобрался ...
public function pruneOld($days) {
$table = $this->getTable();
$db = Zend_Registry::get('dbAdapter');
$where = $db->quoteInto("DATE(`time_cre`) < CURDATE() - INTERVAL ? DAY", $days);
return $table->delete($where);
}
$table
получает ссылку на таблицу, которую я хочу редактировать ...
$db
получает экземпляр адаптера базы данныхпоэтому я могу использовать quoteInto()
...
$where
, чтобы построить основную часть запроса, принимающую $days
, чтобы сделать вещи более гибкими.
Создать действие для вызова этогометод ... что-то вроде:
public function pruneoldAction() {
// Disable the view/layout stuff as I don't need it for this action
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
// Get the data model with a convenience method
$data = $this->_getDataModel();
// Prune the old entries, passing in the number of days I want to be older than
$data->pruneOld(2);
}
А теперь нажав: http://myhost/thiscontroller/pruneold/
удалит записи.Конечно, любой, кто нажмет на этот URL, удалит записи, но я предпринял шаги, не включенные в мой пример, чтобы справиться с этим.Надеюсь, это кому-нибудь поможет.