spCache问题

#1 azwl

下面的语句如何cache?

     $menu = array();
     $rs = spClass('Mmenu');
     $menu = $rs ->spLinker()-> findAll('parent=0', ' parent,sort');


$menu = $rs ->spCache()->spLinker()-> findAll('parent=0', ' parent,sort');这样执行出错!

$menu = $rs ->spLinker()->spCache()-> findAll('parent=0', ' parent,sort');这样执行丢失部分缓存的内容!即关联数据的数据表的内容没了

2010-04-27 14:08:06

#2 jake

现在这些还不能复合调用,spCache最好的用法,是在spModel的派生类内,封装数据操作,之后再用spCache。

不过目前正在研究这几个类复合调用的方法,稍后speedphp 3会有解决方案的。:handshake

2010-04-27 14:17:58

#3 azwl

copy  that!

2010-04-27 14:26:48

#4 syber

联合查询是一个蛮迫切的问题。还有条件findall中,现在还不支持 > <这些比较筛选。这点现在只能自己写sql来执行。如果有方法可以简化就好了。

2010-04-27 22:46:09

#5 jake

联合查询是一个蛮迫切的问题。还有条件findall中,现在还不支持 >
syber 发表于 2010-4-27 22:46
你可以尝试一下 findAll("id > 10 or id < 5"); 也就是$conditions是字符串的用法。

2010-04-28 08:43:56

#6 syber

$affected = $this->update(array('id'=>$userInfo[id], 'datediff(now(), `lastertime`) > 0 and 1'=>'1'), array('lastloginip'=>"INET_ATON('$ip')", 'lastertime'=>'now()', 'loginCount'=>'loginCount + 1'));
我现在这么用,挺无奈的

2010-04-28 11:48:10

#7 jake

我现在这么用,挺无奈的
syber 发表于 2010-4-28 11:48
update也可以用字符串的$conditions的。

2010-04-28 13:09:17

#8 redguan

SP3有一个 class access_driver_db extends spModel{

不过我还没搞清楚如何使用。
$db = spClass('lib_bbs');
$sdb = spClass('spAccessCache',null,$gLOBALS['G_SP']['sp_include_path']);

$a = $sdb->db->findAll();
dump($a);

这样好象不符合逻辑。应该是判断CACHE中的CACHEID是否存在,存在就读缓存,不存在再读SQL语句。

$a = $db->sdb->findAll();

2010-04-29 11:52:40

#9 jake

spAccessCache的使用方法,暂无文档,不过可以看看源代码的注释,看注释也是能明白如何使用的。

2010-04-29 12:34:03