zoukankan      html  css  js  c++  java
  • php 解决MySQL插入数据出现 Incorrect string value: 'xF0x9Fx92x8BTi...'错误

    在项目中向MySQL插入数据时。发现数据插入不完整,通过调试,发现插入语句也没什么特殊的错误。

    可是就是差不进去,于是就打开mysqli错误的调试

    $ret = mysqli_query($this->conn, $sql) or die(mysqli_error($this->conn));


    结果弹出例如以下错误信息:

     Incorrect string value: 'xF0x9Fx92x8BTi...'


    有错误信息就好办了,结果上网一查结果是:mysql编码格式utf-8格式,不支持带四字节的字符串插入。


    网上提供两种方法:

    1.升级MySQL,然后将相应的数据类型改为utf8mb4类型

    2.出现的四字节UTF-8字符过滤或转化为自己定义类型


    因为装的MySQL版本号为5.1。所以方法1不适合;本人选了另外一种过滤字符串,变成合适的3字节utf-8

    $str = preg_replace('/[x{10000}-x{10FFFF}]/u', '', $str);

    尽管还是不能非常完美解决,可是至少保证每条数据都能够正确插入。

    假设想完美解决的话。最好升级MySql,直接改数据类型为utf8mb4类型




  • 相关阅读:
    Sass
    Less文件的建立
    面试问题整理
    高光谱图像分类部分名词解析
    监督学习,无监督学习和半监督学习
    git
    node.js安装及其环境配置
    浏览器从输入网址到渲染出页面的过程
    node的api
    模块与包管理工具
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6855357.html
Copyright © 2011-2022 走看看