月度归档:2017年03月

ucenter 用户名注册长度限制

在网站 uc_client\model 目录下的 user.php文件中

if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username))

修改数据库字段长度:

pre_ucenter_member和pre_common_member

还有其他关于username表(可选)

重新开通微社区

如果出现微社区资料修改失败,请稍后再试,请按照下面方法做:

1.用户访问Discuz!后台,进入站长→数据库→升级。
2.执行语句:UPDATE pre_common_setting SET svalue=” WHERE skey=’mobilewechat’;
注意:
1、流量统计信息将清零,重新开始统计(如有需要请先将历史数据截图保存)
3、进入 应用-微信登录 -微社区设置,点开通微社区,选择是。并完善微社区相关资料。
4.微社区id会变掉。其他不变。请访问最新的微社区id查看效果。

Discuz!X/数据库 DB:: 函数操作方法

DB::table($tablename)获取正确带前缀的表名,转换数据库句柄,
DB::delete($tablename, 条件,条数限制)删除表中的数据
DB::insert($tablename, 数据(数组),是否返回插入ID,是否是替换式,是否silent)插入数据操作
DB::update($tablename, 数据(数组)条件)更新操作
DB::fetch(查询后的资源)从结果集中取关联数组,注意如果结果中的两个或以上的列具有相同字段名,最后一列将优先。
DB::fetch_first($sql)取查询的第一条数据fetch
DB::fetch_all($sql)查询并fetch
DB::result_first($sql)查询结果集的第一个字段值
DB::query($sql)普通查询
DB::num_rows(查询后的资源)获得记录集总条数
DB::_execute(命令,参数)执行mysql类的命令
DB::limit(n,n)返回限制字串
DB::field(字段名, $pid) 返回条件,如果为数组则返回 in 条件
DB::order(别名, 方法)排序

注意事项:所有数据在插入数据库之前,均需要进行addslashes()处理,以免特殊字符未经转义在插入数据库的时候出现错误。Discuz!中所有通过 GET, POST, FILE,取得的变量默认情况下已经使用了addslashes()进行了转义,不必重复进行。如果数据处理必要(例如用于直接显示),可以使用 stripslashes() 恢复,但数据在插入数据库之前必须再次进行转义。缓存文件中,一般对缓存数据的值采用 addcslashes($string, ‘\’\\’)进行转义。

最常见的查询数据库举例:
获取单条数据:
$rs = DB::fetch_first(“SELECT * FROM “.DB::table(‘common_member’).” WHERE uid=1″);
这里获取的是UID为1的用户的数据,但是discuz内还有一个getuserbyuid可以获取用户数据
获取多条数据:
$rs = DB::fetch_all(“SELECT * FROM ” .DB::table(‘common_member’).” WHERE uid in(1,2,3,4,5,6)”);
这里获取的是UID为1 2 3 4 5 6的用户的信息

插入数据讲解
调用方式:DB::insert()
说明:关于是否是否。只要值为1就是 是,否就直接无视或者留空
举例:
首先是存在一个表名为pre_test
表内有以下字段:id(递增) name uid 字段类型就别管了
if(DB::insert(‘test’,array(‘id’=>NULL,’name’=>’me’,’uid’=>1))) showmessage(“数据插入成功”);
说明:这边的数组的键名就是数据表中的字段名,键值就是插入的对应字段的值

DB::fetch_all(‘SELECT * FROM %t WHERE panel=%d’, array($this->_table, $panel), ‘uid’);
DB::fetch_all(‘SELECT * FROM %t WHERE uid=%d ORDER BY dateline DESC’, array($this->_table, $uid), ‘bid’) : array();
注:DZ中%号会当做参数,需要你传入,首先第一个你可以使用DB::table($this->_table)代替,第二个你可以用实实在在的表明,第三个的话你可以吧数值计算出来后填进去,这样的话应该就不会出现问题了

重新开通云平台

重新开通云平台:
1、后台 工具 云平台诊断工具 查看是否都正常
2、根据这个帖子操作:http://www.discuz.net/thread-2616005-1-1.html
3、下载 discuzx_update_sitekey.php地址:
http://cp.discuz.qq.com/faq?fId=115
4、按照上面的步骤,执行了discuzx_update_sitekey.php后,用新域名开通云平台。
开通地址:新域名/admin.php?action=cloud&operation=open
用新域名开通后,在用原来的域名登录同步站点信息