程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 解決MySQL插入數據出現 Incorrect string value: '\xF0\x9F\x92\x8BTi...'錯誤

php 解決MySQL插入數據出現 Incorrect string value: '\xF0\x9F\x92\x8BTi...'錯誤

編輯:關於PHP編程

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類型




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved