Ejemplo n.º 1
0
 /**
  * ガーベジコレクションを実行する.
  *
  * 引数 $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;
     }
 }
Ejemplo n.º 2
0
 /**
  * 指定したトランザクション内にて主キーベースでデータの削除を行う。
  * 主キーが存在しない場合は何もしない。
  */
 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();
         }
     }
 }