会不会和上次我的问题有共性? 欢迎新成员不变动:https://discuz.dismall.com/thread-1421225-1-1.html
当时解答是“只有在有新成员注册时才改变。”实际这句话不确切,经过艰苦的跟踪,发现是在 function_space.php 的 space_open 中更新的,确切地说是没有空间的用户,在首次登录创建用户空间时更新新成员列表,不一定必须是新用户注册,换句话说对于导入的用户在首次登录时应该一样有效。
我把该部分代码提取出来在 function insertsession($setarr) 中每次登录时执行:- //更新最新会员
- if($_SCONFIG['newspacenum']>0) {
- $newspacelist = array();
- $wherearr = array('1');
- if($_SCONFIG['newspaceavatar']) $wherearr[] = "avatar='1'";
- if($_SCONFIG['newspacerealname']) $wherearr[] = "namestatus='1'";
- if($_SCONFIG['newspacevideophoto']) $wherearr[] = "videostatus='1'";
- $query = $_SGLOBAL['db']->query("SELECT uid,username,name,namestatus,videostatus,dateline FROM ".tname('space')." WHERE ".implode(' AND ', $wherearr)." ORDER BY uid DESC LIMIT 0,$_SCONFIG[newspacenum]");
- while ($value = $_SGLOBAL['db']->fetch_array($query)) {
- $newspacelist[] = $value;
- }
- data_set('newspacelist', $newspacelist);
- }
复制代码 发现需要执行 query 的代码 SELECT uid,username,name,namestatus,videostatus,dateline FROM uchome_space WHERE 1 ORDER BY uid DESC LIMIT 0,6 在MySQL管理器中执行正常,而在执行 $_SGLOBAL['db']->query 时出错了,我不知道原因了,也不知道如何打印出错提示。顺便提一个建议 ORDER BY uid 改为 ORDER BY dateline好一些,对于直接注册的用户 uid 可以反映注册的先后次序,但是对于转移的用户 uid 不能代表先后,还是 dateline 更为准确。
这样是否在生成个人应用菜单时也会有类似的数据库错误呢。 |