本文整理汇总了PHP中General::setCacheID方法的典型用法代码示例。如果您正苦于以下问题:PHP General::setCacheID方法的具体用法?PHP General::setCacheID怎么用?PHP General::setCacheID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类General
的用法示例。
在下文中一共展示了General::setCacheID方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get
public function get($param)
{
$this->getAdapter()->exec("set @row_num = 0");
$this->getAdapter()->exec("set @co_post = 0");
$bind = array();
$bind['dt_fuso'] = $_SESSION['tw_auth']['dt_fuso'];
$bind['limit'] = $param['limit'] ? $param['limit'] : 3;
$sql = "SELECT\n\t c.co_post,\n u.co_usuario,\n\t u.nu_usuario,\n\t u.no_email,\n\t u.no_usuario,\n\t i.nu_imagem,\n\t c.nu_comentario,\n\t CONVERT_TZ(c.dt_cadastro,'+00:00',:dt_fuso) dt_cadastro,\n\t c.dt_cadastro dt_cadastro_utc,\n\t c.tx_comentario\n FROM tb_comentario c\n JOIN (\n\t SELECT \n\t co_comentario\n\t FROM (\n\t\t SELECT\n\t\t co_post,\n\t\t co_comentario,\n\t\t if(@co_post <> co_post,@row_num := 0,@row_num := @row_num + 1) row_num,\n\t\t (@co_post := co_post) co_post_ctr\n\t\t FROM \n\t\t (SELECT * FROM tb_comentario ORDER BY co_comentario desc) c\n\t\t WHERE ";
if ($param['co_post']) {
if (!is_array($param['co_post']) || count($param['co_post']) == 1) {
$sql .= " co_post = :co_post and ";
$bind['co_post'] = current($param['co_post']);
} else {
$sql .= " co_post IN (" . implode(',', $param['co_post']) . ") and ";
}
}
if ($param['nu_post']) {
$sql .= " co_post = (SELECT co_post FROM tb_post \n WHERE nu_post = :nu_post) and ";
$bind['nu_post'] = $param['nu_post'];
}
$sql .= " st_ativo = 1\n\t\t ORDER BY co_post\n\t ) c\n\t WHERE c.row_num < :limit\n ) tc ON tc.co_comentario = c.co_comentario\n JOIN tb_usuario u ON u.co_usuario = c.co_usuario\n LEFT JOIN tb_imagem i ON i.co_imagem = u.co_imagem\n ORDER BY c.co_post, c.dt_cadastro ASC";
$cache_id = "cmt_" . md5(serialize($param) . serialize($bind));
General::setCacheID('cmt', $cache_id);
$cache = General::cache(10);
$rs = $cache->load($cache_id);
if (!$rs) {
$rs = $this->getAdapter()->fetchAll($sql, $bind);
$cache->save($rs, $cache_id);
}
$arReturn = array();
if (count($rs)) {
foreach ($rs as $item) {
$arReturn[$item['co_post']][] = $item;
}
return $arReturn;
} else {
return array();
}
}
示例2: get
public function get($param)
{
$bind = array();
$bind['dt_fuso'] = $_SESSION['tw_auth']['dt_fuso'];
$sql = "SELECT\n\t\t\tp.co_post,\n\t\t\tp.nu_post,\n u.co_usuario,\n\t\t\tu.nu_usuario,\n\t\t\tu.no_email,\n\t\t\tu.no_usuario,\n\t\t\tp.tx_post,\n\t\t\tCONVERT_TZ(p.dt_cadastro,'+00:00',:dt_fuso) dt_cadastro,\n\t\t\tp.dt_cadastro dt_cadastro_utc,\n\t\t\ttp.qt_comentario,\n\t\t\ti.nu_imagem\n\t\tFROM\n\t\ttb_post p\n\t\tJOIN\n\t\t( \n SELECT\n\t\t\t p.co_post,\n\t\t\t if(c.co_comentario is null,0,count(*)) qt_comentario\n\t\t FROM\n\t\t tb_post p\n\t\t JOIN tb_usuario u\n\t\t\t ON u.co_usuario = p.co_usuario ";
if ($param['tipo'] == "amigo") {
$sql .= " JOIN tb_seguidor s\n\t ON s.co_usuario_seguido = u.co_usuario ";
}
$sql .= " LEFT JOIN tb_comentario c\n\t ON c.co_post = p.co_post AND c.st_ativo = 1\n WHERE p.st_ativo = 1\n\t AND u.st_ativo = 1 ";
if ($param['tipo'] == "rede") {
$sql .= " AND u.co_pais = :co_pais ";
$bind['co_pais'] = $_SESSION['tw_auth']['co_pais'];
}
if ($param['tipo'] == "amigo") {
$sql .= " AND s.co_usuario_seguidor = :co_usuario_seguidor";
$bind['co_usuario_seguidor'] = $_SESSION['tw_auth']['co_usuario'];
}
if ($param['tipo'] == "usuario") {
if ($param['nu_usuario']) {
$sql .= " AND u.nu_usuario = :nu_usuario";
$bind['nu_usuario'] = $param['nu_usuario'];
} else {
$sql .= " AND u.co_usuario = :co_usuario";
$bind['co_usuario'] = $param['co_usuario'];
}
}
if ($param['tipo'] == "id") {
$sql .= " AND p.nu_post = :nu_post";
$bind['nu_post'] = $param['nu_post'];
}
if ($param['uptime']) {
$sql .= " AND p.dt_cadastro < :dt_cadastro";
$bind['dt_cadastro'] = $param['uptime'];
}
$sql .= " GROUP BY p.co_post\n ORDER BY p.dt_cadastro desc\n LIMIT 10 ) tp ON tp.co_post = p.co_post\n JOIN tb_usuario u ON u.co_usuario = p.co_usuario\n LEFT JOIN tb_imagem i ON i.co_imagem = u.co_imagem";
$cache_id = "pst_" . md5(serialize($param) . serialize($bind));
$cache = General::cache(10);
General::setCacheID('pst', $cache_id);
$rs = $cache->load($cache_id);
if (!$rs) {
$rs = $this->getAdapter()->fetchAll($sql, $bind);
$cache->save($rs, $cache_id);
}
unset($cache);
$arIDPost = array();
$arReturn = array();
if (count($rs)) {
foreach ($rs as $item) {
if ($item['qt_comentario'] > 0) {
$arIDPost[] = $item['co_post'];
}
}
$arComentario = array();
if (count($arIDPost)) {
$arComentario = Model_Comentario::getInstance()->get(array("co_post" => $arIDPost, "limit" => $param['tipo'] == "id" ? 100 : 3));
}
foreach ($rs as $item) {
$arReturn[$item['co_post']] = $item;
$arReturn[$item['co_post']]['comentario'] = $arComentario[$item['co_post']];
}
unset($arComentario);
unset($rs);
unset($arIDPost);
return $arReturn;
} else {
return array();
}
}
示例3: seguidor
public function seguidor($param = array())
{
$sql = "SELECT \n\t u.nu_usuario,\n\t u.no_email,\n\t u.no_usuario,\n i.nu_imagem\n FROM tb_seguidor s\n JOIN tb_usuario u ";
if ($param['tipo'] == "seguidor") {
$sql .= "ON u.co_usuario = s.co_usuario_seguidor";
} else {
$sql .= "ON u.co_usuario = s.co_usuario_seguido";
}
$sql .= " LEFT JOIN tb_imagem i ON\n i.co_imagem = u.co_imagem\n WHERE ";
if ($param['tipo'] == "seguidor") {
$sql .= "s.co_usuario_seguido = :co_usuario";
} else {
$sql .= "s.co_usuario_seguidor = :co_usuario";
}
$sql .= " AND u.st_ativo = 1\n ORDER BY u.dt_ultimo_acesso desc, i.nu_imagem DESC\n LIMIT 12";
$bind = array();
$bind['co_usuario'] = $param['co_usuario'];
$cache = General::cache(60 * 10);
$cache_id = "seg_" . md5(serialize($param) . serialize($bind));
General::setCacheID('seg', $cache_id);
$rs = $cache->load($cache_id);
if (!$rs) {
$rs = $this->getAdapter()->fetchAll($sql, $bind);
$cache->save($rs, $cache_id);
}
return $rs;
}