4.6 bootstrap.inc cache_clear_all($cid = NULL, $wildcard = false)
4.7 bootstrap.inc cache_clear_all($cid = NULL, $wildcard = false)
5 cache.inc cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE)
6 cache.inc cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE)
6 cache-install.inc cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE)
7 cache.inc cache_clear_all($cid = NULL, $bin = NULL, $wildcard = FALSE)

Expires data from the cache.

If called with the arguments $cid and $bin set to NULL or omitted, then expirable entries will be cleared from the cache_page and cache_block bins, and the $wildcard argument is ignored.


$cid: If set, the cache ID or an array of cache IDs. Otherwise, all cache entries that can expire are deleted. The $wildcard argument will be ignored if set to NULL.

$bin: If set, the cache bin to delete from. Mandatory argument if $cid is set.

$wildcard: If TRUE, the $cid argument must contain a string value and cache IDs starting with $cid are deleted in addition to the exact cache ID specified by $cid. If $wildcard is TRUE and $cid is '*', the entire cache is emptied.

79 calls to cache_clear_all()
2 string references to 'cache_clear_all'
menu_cache_clear in includes/menu.inc
Clears the cached cached data for a single named menu.
_menu_clear_page_cache in includes/menu.inc
Clears the page and block caches at most twice per page load.


includes/cache.inc, line 158
Functions and interfaces for cache handling.


function cache_clear_all($cid = NULL, $bin = NULL, $wildcard = FALSE) {
  if (!isset($cid) && !isset($bin)) {
    // Clear the block cache first, so stale data will
    // not end up in the page cache.
    if (module_exists('block')) {
      cache_clear_all(NULL, 'cache_block');
    cache_clear_all(NULL, 'cache_page');
  return _cache_get_object($bin)->clear($cid, $wildcard);


The $bin is the name of the particular database cache table. So, for example:
cache_clear_all('field:node:' . $node->nid, 'cache_field');

I built a custom module that allows the user to upload an image and then clears the cache to display the image on the page. the process takes a very long time, as the image must be uploaded then the cache cleared. right now I am using cache_clear_all but is there a way to only clear the cache for images?

$GLOBALS['conf']['cache'] = 0;
cache_clear_all(NULL, 'cache_page', '*');

If you'd like to clear an entire cache bin for database caches, regardless of the 'expire' value for a cached object, you need to do something like:

('*', 'cache_my_module_bin', TRUE);

Providing an '*' for the first parameter tells the database cache interface's clear() method to truncate the particular cache bin.

How to clear views cache after update/edit/save node programmatically?

You can use the hook_node_update() which will be triggered when a node is updated. Then use cache_clear_all() and set the $cid to be the name of the view and $bin to 'cache_views_data'.