首页 > php教程 > php手册 > 正文

php 解决MySQL插入数据出现 Incorrect string value: 'xF0x9Fx92x8BTi...'错误

WBOY
发布: 2016-06-13 09:28:37
原创
1588 人浏览过

php 解决MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误

在项目中向MySQL插入数据时,发现数据插入不完整,通过调试,发现插入语句也没什么特殊的错误。但是就是差不进去,于是就打开mysqli错误的调试

$ret = mysqli_query($this->conn, $sql) or die(mysqli_error($this->conn));
登录后复制


结果弹出如下错误信息:

Incorrect string value: '\xF0\x9F\x92\x8BTi...'


有错误信息就好办了,结果上网一查结果是: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类型




相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!