コード例 #1
0
 /**
  * Clears thread cache.
  *
  * @param string  $mailbox     Folder name
  */
 function remove_thread($mailbox = null)
 {
     $this->db->query("DELETE FROM {$this->thread_table}" . " WHERE `user_id` = ?" . (strlen($mailbox) ? " AND `mailbox` = " . $this->db->quote($mailbox) : ""), $this->userid);
     if (strlen($mailbox)) {
         unset($this->icache[$mailbox]['thread']);
         // Thread data removed, set flag to skip SELECT query in get_thread()
         $this->icache[$mailbox]['thread_queried'] = true;
     } else {
         $this->icache = array();
     }
 }
コード例 #2
0
 /**
  * Create a contact group with the given name
  *
  * @param string The group name
  * @return mixed False on error, array with record props in success
  */
 function create_group($name)
 {
     $result = false;
     // make sure we have a unique name
     $name = $this->unique_groupname($name);
     $this->db->query("INSERT INTO " . $this->db->table_name($this->db_groups) . " (user_id, changed, name)" . " VALUES (" . intval($this->user_id) . ", " . $this->db->now() . ", " . $this->db->quote($name) . ")");
     if ($insert_id = $this->db->insert_id($this->db_groups)) {
         $result = array('id' => $insert_id, 'name' => $name);
     }
     return $result;
 }
コード例 #3
0
 /**
  * Deletes the cache record(s).
  *
  * @param string  $key         Cache key name or pattern
  * @param boolean $prefix_mode Enable it to clear all keys starting
  *                             with prefix specified in $key
  */
 private function remove_record($key = null, $prefix_mode = false)
 {
     if (!$this->db) {
         return;
     }
     if ($this->type != 'db') {
         $this->load_index();
         // Remove all keys
         if ($key === null) {
             foreach ($this->index as $key) {
                 $this->delete_record($this->ckey($key));
             }
             $this->index = array();
         } else {
             if ($prefix_mode) {
                 foreach ($this->index as $idx => $k) {
                     if (strpos($k, $key) === 0) {
                         $this->delete_record($this->ckey($k));
                         unset($this->index[$idx]);
                     }
                 }
             } else {
                 $this->delete_record($this->ckey($key));
                 if (($idx = array_search($key, $this->index)) !== false) {
                     unset($this->index[$idx]);
                 }
             }
         }
         $this->index_changed = true;
         return;
     }
     // Remove all keys (in specified cache)
     if ($key === null) {
         $where = " WHERE `cache_key` LIKE " . $this->db->quote($this->prefix . '.%');
     } else {
         if ($prefix_mode) {
             $where = " WHERE `cache_key` LIKE " . $this->db->quote($this->prefix . '.' . $key . '%');
         } else {
             $where = " WHERE `cache_key` = " . $this->db->quote($this->prefix . '.' . $key);
         }
     }
     $this->db->query("DELETE FROM " . $this->table . $where);
 }
コード例 #4
0
ファイル: rcube_cache.php プロジェクト: bbspike/sentora-core
 /**
  * Deletes the cache record(s).
  *
  * @param string  $key         Cache key name or pattern
  * @param boolean $prefix_mode Enable it to clear all keys starting
  *                             with prefix specified in $key
  */
 private function remove_record($key = null, $prefix_mode = false)
 {
     if (!$this->db) {
         return;
     }
     if ($this->type != 'db') {
         $this->load_index();
         // Remove all keys
         if ($key === null) {
             foreach ($this->index as $key) {
                 $this->delete_record($key, false);
             }
             $this->index = array();
         } else {
             if ($prefix_mode) {
                 foreach ($this->index as $k) {
                     if (strpos($k, $key) === 0) {
                         $this->delete_record($k);
                     }
                 }
             } else {
                 $this->delete_record($key);
             }
         }
         return;
     }
     // Remove all keys (in specified cache)
     if ($key === null) {
         $where = " AND cache_key LIKE " . $this->db->quote($this->prefix . '.%');
     } else {
         if ($prefix_mode) {
             $where = " AND cache_key LIKE " . $this->db->quote($this->prefix . '.' . $key . '%');
         } else {
             $where = " AND cache_key = " . $this->db->quote($this->prefix . '.' . $key);
         }
     }
     $this->db->query("DELETE FROM " . $this->table . " WHERE user_id = ?" . $where, $this->userid);
 }