前台显示的总会员数与用户表总数不一致的问题排查

今天有个朋友反应他的站前台显示的会员数和用户表里不一致,顺便帮他排查了下。

原因:
由于QQ互联之前更改了注册流程,引入了QQ互联游客组的概念。
所以Discuz侧计算会员总数的时候也带上了QQ互联游客组的数目。

具体的分析:
source\class\table\table_common_member.php文件,有如下代码:

/**
 * 统计会员数
 * @param int $fetch_archive 0:只查询主表,1:查询主表和存档表
 * @return int
 */
public function count($fetch_archive = 1) {
	$count = DB::result_first('SELECT COUNT(*) FROM %t', array($this->_table));
	if(isset($this->membersplit) && $fetch_archive) {
		$count += C::t($this->_table.'_archive')->count();
	}
	//增加QQ互联临时用户数
	$count += intval(DB::result_first('SELECT COUNT(*) FROM '.DB::table('common_connect_guest'), null, true));
	return $count;
}

注意其中的这句代码
$count += intval(DB::result_first('SELECT COUNT(*) FROM '.DB::table('common_connect_guest'), null, true));

这里加上了common_connect_guest表里的记录数,common_member_guest表是QQ互联的游客用户表。

标签: none

添加新评论