thinkphp 中 where 查询问题

2015-12-19 00:29:20 +08:00
 luckylion

table1
id ----- uid ----- name ----- name2
1 ----- 5 ----- wang ----- wanghu
2 ----- 10 ----- li ----- litao

$db=M('table1');
$map['id']=1;
$where['name']=array('like','%wa%');
$where['name2']=array('like','%wa%');
$where['_logic'] = 'or';
$map['_complex'] = $where;

//不解的地方
$a=$db->where($map);
$b=$db->where($map);

echo $a->sum('uid');
echo $b->sum('uid');

//最终输出 5 和 15
//如果将最后 4 句调成
$a=$db->where($map);
echo $a->sum('uid');

$b=$db->where($map);
echo $b->sum('uid');
//这样就正确输出了全是 5

/*
但现在程序遇到需要在前面进行 where 拼接判断,最后才进行数据的查询,
我以前用的程序可通过 copy()把 where 拷贝一份出来,不知 thinkphp 有没有这个功能,比如别的程序将最后 4 句改成
*/
$a=$db->where($map);
$b=$a->copy();

echo $a->sum('uid');
echo $b->sum('uid');

1456 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/244584

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX