spCache问题
发布于:2022-01-17 09:50:54
#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