可爱熊个人博客

memcache实现计数器和数据压缩

一:访问统计

//访问统计
$memcache = new Memcache;
$memcache->connect(‘localhost’, 11211) or die (“Could not connect”);
if($s=$memcache->get(‘a’)) {
   $s=$s+1;
   $memcache->set(‘a’,$s);
}
else
$memcache->set(‘a’,1);
echo ‘访问结果为:’.$s;
?>

其实我们可以用increment方法代替上面的做法  Read More…

Tags:

memcached完全剖析–1. memcached的基础

memcached是什么?

memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixihatenaFacebookVox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。

许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。

这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。 Read More…

Tags:

smarty调用php的函数

相信很多人都不是很很了解smarty的一个重要功能,就是能在smarty模板里面调用php的内置函数.

模板书写:
{‘param1’|functionName:’param2′:’param3’}

php函数原型:
echo functionName(‘param1′,’param2′,’param3’);

实例:
{‘1234567’|substr:’1′:’2’}
下面这个比较怪 和函数的参数顺序有关系
{‘a’|str_replace:’A’:’abcd’}

Tags: ,

substr(),mb_substr()及mb_strcut的区别和用法

substr()函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。

举个例子:
<?php
echo mb_substr(‘这样一来我的字符串就不会有乱码^_^’, 0, 7, ‘utf-8’);
?>
输出:这样一来我的字
<?php
echo mb_strcut(‘这样一来我的字符串就不会有乱码^_^’, 0, 7, ‘utf-8’);
?>

Read More…

Tags: , ,

mysql 各种级联查询后更新(update select)

mysql  各种级联查询后更新(update select).

CREATE TABLE `tb1` (
  `id` int(11) NOT NULL,
  `A` varchar(100) default NULL,
  `B` varchar(100) default NULL,
  `C` varchar(20) default NULL,
  PRIMARY KEY  (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `tb2` (
  `id` int(11) NOT NULL,
  `A` varchar(100) default NULL,
  `B` varchar(100) default NULL,
  PRIMARY KEY  (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; Read More…

Tags:

Update + select

已下語法會因為Mysql 版本出現問題
UPDATE `phpads_banners` SET `compiledlimitation` = (
SELECT `compiledlimitation`
FROM (SELECT * FROM `phpads_banners`) AS b
WHERE `bannerid` = 33 )
WHERE `bannerid` = 34

#1093 – You can’t specify target table ‘phpads_banners’ for update in FROM clause

若出現 #1093 – You can’t specify target table ‘phpads_banners’ for update in FROM clause 可改成

update phpads_banners as a
   inner join (
      select * from phpads_banners
      where bannerid = 33
   ) as b on a.bannerid=34 and b.bannerid = 33
set a.compiledlimitation = b.compiledlimitation;

Tags: ,

PHP中的post与get

$_GET

$_GET 变量用于收集来自 method=”get” 的表单中的值。$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。

$_GET 变量用于收集来自 method=”get” 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。

为什么使用 $_GET? Read More…

Tags:

mysql批量更新数据

以下使用于mysql 

update tepoi,pinf set tepoi.x=pinf.fx,tepoi.y=pinf.fy
 where tepoi.pid=pinf.dmgis_id and tepoi.pid>10000;

 假设有表a,b

其结构

a(id,email,name)   b(id,email)

update   a inner join   b on a.id=b.id set a.email=’aa@com’,b.email=’bb.com’

update tableA inner join tableB on tableA.FieldA=tableB.FieldB

set

tableA.字段=值,

tableB.字段=值

多表更新
在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。 Read More…

Tags:

Smarty简明教程

 一. 安装

  首先打开网页http://www.smarty.net/download.php,下载最新版本的Smarty。解压下载的文件(目录结构还蛮复杂的)。接下来演示给大家一个安装实例,看过应该会举一反三的。

  (1) 在根目录下建立了新的目录learn/,再在learn/里建立一个目录smarty/。将刚才解压缩出来的目录的libs/拷贝到smarty/里,再在smarty/里新建templates目录,templates里新建cache/,templates/,templates_c/, config/.

  (2) 新建一个模板文件:index.tpl,将此文件放在learn/smarty/templates/templates目录下,代码如下: Read More…

Tags:

smarty内建函数全集

内建函数
内建函数不能擅自修改。
capture
capture函数的作用是收集模板输出的数据到一个变量里,而不是把它们输出到页面.例如任何在 {capture name=”foo”}和{/capture}之间的数据都被收到了由函数的名称属性指定的变量{$foo}里,或者{$smarty.capture.foo}里。如果函数没有名字属性,将使用”default”.每个{capture}都必须对应{/capture},也不能嵌套使用capture函数。

config_load
引用配置文件
file是必须的,说明要包含进来的配置文件名称,section说明要加载的部分的名称,scope被处理的变量的作用域.必须是local,parent或者global.
local的意思是变量将在本模板里被加载.
parent的意思是变量将在本模板和上级模板被加载.
global的意思是变量将应用到所有的模板.默认为local。变量是否在上级模板可视,默认为no。如果scope属性已经有了,这个值将被忽略.
Read More…

Tags: