选择语言 :

 Driver_Cache_Driver_Database::get

取得数据,支持批量取

mixed Driver_Cache_Driver_Database::get( string/array $key )

参数列表

参数 类型 描述 默认值
$key string/array $key
返回值
  • mixed
File: ./drivers/cache/database/database.class.php
public function get($key)
{
    if (is_array($key))
    {
        $md5_key = array();
        $key_map = array();
        foreach ($key as &$k)
        {
            $key_map[$this->prefix . $k] = $k;
            $k = $this->prefix . $k;
            $md5_key[] = md5($k);
        }

        $this->_handler->in('key', $md5_key);
    }
    else
    {
        $key = $this->prefix . $key;

        $this->_handler->where('key', md5($key))->limit(1);
    }

    $rs = $this->_handler->select('key_string', 'value', 'number')->from($this->tablename)->and_where_open()->where('expire', 0)->or_where('expire', TIME,'>')->and_where_close()->get();

    if ($rs->count())
    {
        if (is_array($key))
        {
            $return = array();
            foreach ($rs as $data)
            {
                $data_key = $key_map[$data['key_string']];
                $return[$data_key] = $data['value'];

                if (''===$data['value'])
                {
                    $return[$data_key] = $data['number'];
                }
                else
                {
                    $this->_de_format_data($return[$data_key]);
                }
            }
        }
        else
        {
            $return = $rs->current();

            if (''===$return['value'])
            {
                $return = $return['number'];
            }
            else
            {
                $return = $return['value'];
                $this->_de_format_data($return);
            }
        }

        if (IS_DEBUG)Core::debug()->info($key, 'database cache hit key');

        unset($rs);

        return $return;
    }
    else
    {
        if (IS_DEBUG)Core::debug()->error($key, 'database cache mis key');
    }

    return false;
}