php 解决MySQL插入数据出现 Incorrect string value: &#_MySQL
程序员文章站
2024-01-31 20:17:58
...
在项目中向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中路径问题的解决方案_PHP
推荐阅读
-
解决mysql不能插入中文Incorrect string value_MySQL
-
php 解决MySQL插入数据出现 Incorrect string value: &#_MySQL
-
php 解决MySQL插入数据出现 Incorrect string value: &#_MySQL
-
解决mysql不能插入中文Incorrect string value
-
MySQL大批量数据插入,PHP之for不断插入时出现缓慢的解决方案及
-
解决mysql不能插入中文Incorrect string value
-
解决mysql不能插入中文Incorrect string value
-
php 解决MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误
-
MySql 中文写入数据库乱码及Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1解决
-
针对mysql数据库无法在表中插入中文字符的解决方案(彻底解决:java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94‘ )