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'
)->from(
$this
->tablename)->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'
];
$this
->_de_format_data(
$return
[
$data_key
]);
}
}
else
{
$return
=
$rs
->current();
$return
=
$return
[
'value'
];
$this
->_de_format_data(
$return
);
}
if
(IS_DEBUG)Core::debug()->info(
$key
,
'database storage hit key'
);
unset(
$rs
);
return
$return
;
}
else
{
if
(IS_DEBUG)Core::debug()->error(
$key
,
'database storage mis key'
);
}
return
false;
}