wordpress中出现 illegal mix of collations的错误解决办法

文件根目录下的error.log这个文件是专门用来记录web服务器访问错误的,如果一旦出现异常,它就会迅速记录下来。

打开文件根目录下的error.log后,看到错误日志记录如下:

[21-Apr-2013 05:44:07] WordPress 数据库查询 SELECT * FROM wpcourse_prli_links WHERE slug=’awesome-flickr-gallery插件推荐.html’ 时发生 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ‘=’ 错误,这是由 require(‘wp-blog-header.php’), require_once(‘wp-load.php’), require_once(‘wp-config.php’), require_once(‘wp-settings.php’), do_action(‘init’), call_user_func_array, prli_redirect, prli_link_redirect_from_slug, PrliLink->getOneFromSlug, dbrc_wpdb->query, dbrc_wpdb->dbcr_query 查询的。

[21-Apr-2013 05:44:07] WordPress 数据库查询 SELECT slug FROM wpcourse_prli_links WHERE slug like ‘awesome-flickr-gallery插件推荐.html/%’ 时发生 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ‘like’ 错误,这是由 require(‘wp-blog-header.php’), require_once(‘wp-load.php’), require_once(‘wp-config.php’), require_once(‘wp-settings.php’), do_action(‘init’), call_user_func_array, prli_redirect, dbrc_wpdb->query, dbrc_wpdb->dbcr_query 查询的。

经分析,其中其实已经把问题写得比较明白了,错误名称就叫Illegal mix of collations,指的是在执行一段SQL数据库操作的时候,数据库的编码跟要查询文字的编码不匹配。其中一个是latin1_swedish_ci,另一个是utf8_general_ci。

而产生这个错误的表就是prli_link这个表。后来一查,发现这个表是一个叫pretty link的插件引起的。后面在phpmyadmin里手工把这个表的编码从latin1_swedish_ci转成了utf8_general_ci,错误就再也没发生过。

这里要提醒大家的是,由于很多wordpress插件都是老外编写的,所以有个别的插件很可能没有考虑到编码的问题,他们很多都是用的西方文字编码,所以有可能在中文博客上发生错误。

在wordpress根目录下的error.log文件应该经常看一下,否则可能后果很严重。

本站提供的服务

  • wordpress主题、插件、开发、优化以及WordPress虚拟主机、VPS售卖
  • 自用Shadowsocks 服务器搭建 RMB50/次
  • VPN(PPTP&L2TP)流量出售: 5RMB/GB,10GB起售,8条台湾、美国、香港线路
    • 联系QQ:2564692806

      打赏作者
      这篇文章帮助很大,重重有赏

      您的支持将鼓励我们继续创作!

      [微信] 扫描二维码打赏

      [支付宝] 扫描二维码打赏

      正在跳转到PayPal...

female geek, creator of sscloud. keyword: php, html5+css3, python, wordpress

Leave a reply:

Your email address will not be published.

Site Footer