[已解决]如何解决插入mysql数据库时报不支持的字符错?

直接正则过滤好了

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

=======

我数据库表编码是utf8_general_ci

当插入数据时有特殊字符时就报错了:

An exception occurred while executing 'UPDATE user_order SET update_time = ?, memo = ? WHERE id = ?' with params [1513996274, \"\\u5fae\\u4fe1 \\ud83c\\udf4eDGTyy\", 224]:\n\nSQLSTATE[HY000]: 

General error: 1366 Incorrect string value: '\\xF0\\x9F\\x8D\\x8EDG...' for column 'memo' at row 1 
阅读 2.1k
1 个回答

建议全部转为utf8mb4编码。

ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题