retrieve( 'SELECT last_run FROM scheduled_tasks WHERE class_name = ?', array($className) ); if ($result->RecordCount() == 0) { $returner = 0; } else { $returner = strtotime($this->datetimeFromDB($result->fields[0])); } $result->Close(); return $returner; } /** * Update a scheduled task's last run time. * @param $className string * @param $timestamp int optional, if omitted the current time is used. * @return int */ function updateLastRunTime($className, $timestamp = null) { $result = $this->retrieve( 'SELECT COUNT(*) FROM scheduled_tasks WHERE class_name = ?', array($className) ); if (isset($result->fields[0]) && $result->fields[0] != 0) { if (isset($timestamp)) { $this->update( 'UPDATE scheduled_tasks SET last_run = ' . $this->datetimeToDB($timestamp) . ' WHERE class_name = ?', array($className) ); } else { $this->update( 'UPDATE scheduled_tasks SET last_run = NOW() WHERE class_name = ?', array($className) ); } } else { if (isset($timestamp)) { $this->update( sprintf('INSERT INTO scheduled_tasks (class_name, last_run) VALUES (?, %s)', $this->datetimeToDB($timestamp)), array($className) ); } else { $this->update( 'INSERT INTO scheduled_tasks (class_name, last_run) VALUES (?, NOW())', array($className) ); } } $result->Close(); return $this->getAffectedRows(); } } ?>