MySQL操作偶发性乱码问题分析

公司用的MySQL时有保存读取数据乱码现象,该问题在表现上是随机性的发生,感觉上没有特定规律,前一次好的操作下一次执行可能就会有乱码现象了,但是真的是没有规律吗?

于是乎针对这个问题花了一些时间做分析,查看代码,每一次连接数据库后都立马使用set names utf8;操作设置了使用的字符集,每次SQL操作传入的字符串都应该没有问题。
但是乱码问题确实存在在那边,为了尝试使这个问题再现,配合数据库的慢查询日志发现在发生乱码操作的时常伴随着慢查询SQL,猜测会不会是连续好多个SQL,由于某个SQL执行时间过长或操作失败后影响到后面的操作从而产生乱码数据呢?

问题发现了就要解决,php在使用mysql中对mysql的操作做了封装,这样我们在每一次 query 查询之前都先执行一个 set names utf8;命令,保障每一次查询和更新操作都是用的utf8字符集。

希望发现的这个点是产生乱码问题的根本,这么处理后可以解决乱码的问题。

Popularity: 5% [?]

Related

Comments

One Response to “MySQL操作偶发性乱码问题分析”

  1. littlewater on July 13th, 2008 2:19 pm

    嗯,貌似单位也有这个问题!!!
    下周去试试,谢谢了!!

    [Reply]