解决Discuz不支持MariaDB的问题
发布:smiling 来源: PHP粉丝网 添加日期:2014-12-05 10:07:32 浏览: 评论:0
昨晚把博客和论坛搬回国内了,博客在搬的过程中倒还挺轻松,只是 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';
Tags: Discuz不支持MariaDB MariaDB
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)