php专区

 首页 > php专区 > PHP应用 > CMS建站 > 解决Discuz不支持MariaDB的问题

解决Discuz不支持MariaDB的问题

分享到:
【字体:
导读:
         [导读] 昨晚把博客和论坛搬回国内了,博客在搬的过程中倒还挺轻松,只是 Discuz 搬迁后出现水土不服,下面我就来给各位朋友整理一下具体的解决过程. 提示: Illegal mix of collations (gbk chinese ci,IMP...

昨晚把博客和论坛搬回国内了,博客在搬的过程中倒还挺轻松,只是 Discuz 搬迁后出现水土不服,下面我就来给各位朋友整理一下具体的解决过程.

提示:Illegal mix of collations (gbk chinese ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='

搜索后大概意思是说数据库编码不对,我就郁闷了,数据库是 GBK 的,字段是 GBK 的,程序也是 GBK 的,怎么会编码有问题呢?

绕过计划任务进入论坛,发现论坛中文全部乱码了,难道是我导入数据的时候有问题?于是乎我又重新用 GB2312 导出一份,上传到服务器,依然不行.

反反复复折腾一个小时之后,一个偶然的机会下发现 Discuz 下数据库被设置为 lantin 编码,这和 phpmyadmin 看到的不一样啊.//开源软件:phpfensi.com

然后又研究了许久 Discuz 的数据库类,明明有设置为 GBK 的,难道没设置成功?

在程序中加入 DB::query() 设置编码,发现居然可以了,这是什么道理??表示不服,难道用 mysql_query() 就不行么?可是 DB::query() 又是调用 mysql_query() 的啊.

偶然调节代码顺序的时候,发现移动到 if($this->version() > '4.1') 外侧竟然执行成功了,尼玛原来你才是罪魁祸首,可是这句话有问题么?输出下:

10.0.9-MariaDB

尼玛我瞬间就明白了,这是一个字符串,“4.1”也是一个字符串,字符串比较是逐一比较各字符,先判断 1 < 4,然后得出 10.0.9-MariaDB < 4.1.

我 QNMLGB,害我倒腾两个小时……

解决办法:修改 version 方法,return '9.9.9';

分享到:
解决discuz论坛QQ临时会话点击无效?
今天帮一位站长弄网站,然后发现后台全局添加在线QQ的时候出现了问题当在后台设置论坛QQ在线客服号码,或者在个人信息联系方式里填写QQ号码后,不能发起QQ临时会话了,下面我们一起来看看例子. 点击页面右下角的QQ在线图标或点击帖子左侧个人信息下的发起QQ聊天,弹出的窗口中都显示“抱歉,无法发起临时会话,您可以添加对方...
discuz列表页删除文章归档外的分类信息的...
使用dz论坛的朋友都知道如果我们使用默认模板会发现我们所有的信息都是与官方一样的,像我不喜欢除列表以外的其它东西要怎么删除呢?下面就来给各位同学介绍一下吧. 今天碰到一个怪胎,大家都添加过DISCUZ分类信息,当然也都设置过主题分类,但是discuz有个问题就是会把你的分类信息的字段和帖子归档的分类都显示出来,这样...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……