1. 程式人生 > >微信登錄時用戶信息無法寫入數據庫

微信登錄時用戶信息無法寫入數據庫

tp5 特殊 mys linux name 字節 定位 set 開源

問題:

微信登錄時,由於用戶名中帶有特殊字符,無法寫入數據庫

環境:

linux/nginx/mysql/php

做了一個公眾號網頁開發的項目,拿一個網上開源的商城進行二開,框架是TP5。最近碰到一個問題,微信登錄的時候,有的用戶會無法登錄網頁,有的用戶又能夠正常登錄,通過日誌定位到了問題,在用戶初次登錄的時候,MySQL寫入用戶信息的時候出錯了。項目中MySQL數據庫的編碼是utf8mb4,但創建表的時候又給了utf8的編碼,而utf8編碼最多三個字節,,EMOJI表情或者某些特殊字符的編碼是4個字節,所以造成了無法寫入MySQL。

解決辦法:ALTER TABLE table_name CHANGE nickName nickName VARCHAR(255) CHARACTER SET utf8mb4;

微信登錄時用戶信息無法寫入數據庫