我正在到处寻找这个问题的答案,但似乎仍然找不到
Server : localhost
MySQL Version : 5.6.17
我已将数据库表设置为 utf8mb4 以升级到更多字符可能性。当我将某些散列信息插入表中时,根据字符串中字符的随机序列,实际上只插入字符串的一部分(如果不是完全空白)。
在我的 pdo 语句句柄中,我在准备查询之前执行 charset=utf8mb4 ,并且为了安全起见,我之前也设置了 NAMES utf8mb4 。所以我认为一切都应该与 CHARSET 和 COLLATE 保持一致。
所以我的问题是,我应该做什么才能成功地将整个字符串放入字段中?是否有一些角色逃脱了我应该做的事情,而我却失踪了?
编辑:当我将字符串复制/粘贴到 phpmyadmin 中时,它成功地将整个字符串放入字段中。
最佳答案
让我们看看截断字符串的十六进制。
可能的答案在于无法通过 SET NAMES utf8mb4
或连接调用上的某些参数确定客户端正在使用 utf8mb4。
关于切换到 utf8mb4 后 MySQL INSERT 丢失信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32449805/