/** * ガーベジコレクションを実行する. * * 引数 $maxlifetime の代りに 定数 MAX_LIFETIME を使用する. * * @param integer $maxlifetime セッションの有効期限 */ function clean($maxlifetime) { $limit = Vizualiezr_Data_Calendar::now()->strToTime("-" . $maxlifetime . " secs")->date("Y-m-d H:i:s"); // セッションに値を設定 try { $delete = new Vizualizer_Query_Delete($this->table); $delete->addWhere($this->table->update_time . " < ?", array($limit)); Vizualizer_Logger::writeDebug($delete->showQuery()); $delete->execute(); return true; } catch (Exception $e) { return false; } }
/** * 指定したトランザクション内にて主キーベースでデータの削除を行う。 * 主キーが存在しない場合は何もしない。 */ public function delete() { if (!empty($this->primary_keys)) { $delete = new Vizualizer_Query_Delete($this->access); $deleteWhere = false; foreach ($this->columns as $column) { if (in_array($column, $this->primary_keys)) { // 主キーは削除条件 $delete->addWhere($this->access->{$column} . " = ?", array($this->values[$column])); $deleteWhere = true; } } // WHERE句が設定されている場合のみ削除処理を実行 if ($deleteWhere) { $delete->execute(); } } }