>데이터 베이스 >MySQL 튜토리얼 >php 解决MySQL插入数据出现 Incorrect string value: &#_MySQL

php 解决MySQL插入数据出现 Incorrect string value: &#_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-31 08:46:161118검색

在项目中向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类型

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.