Php 表情符号(😀;)在MySQL版本5.6中不能与utf8mb4_-bin一起使用

Php 表情符号(😀;)在MySQL版本5.6中不能与utf8mb4_-bin一起使用,php,mysql,utf-8,utf,utf8mb4,Php,Mysql,Utf 8,Utf,Utf8mb4,我试图将表情符号保存到数据库记录中,但每次都无法正确保存。 我已经提到了这一点,但仍然不起作用。 根据上述问题的解决方案,我尝试将字符集从utf8更改为utf8mb4,并将排序规则从utf8mb4_bin更改 我尝试了一切,比如重置为默认值,然后在数据库表中更改它。我试过utf8mb4\u unicode\u ci、utf8\u unicode\u ci和utf8mb4\u bin,但不起作用 我使用的是MySQL 5.6版本。我正在使用下面的查询更改排序规则 alter table `user

我试图将表情符号保存到数据库记录中,但每次都无法正确保存。 我已经提到了这一点,但仍然不起作用。
根据上述问题的解决方案,我尝试将字符集从utf8更改为utf8mb4,并将排序规则从utf8mb4_bin更改

我尝试了一切,比如重置为默认值,然后在数据库表中更改它。我试过utf8mb4\u unicode\u ci、utf8\u unicode\u ci和utf8mb4\u bin,但不起作用

我使用的是MySQL 5.6版本。我正在使用下面的查询更改排序规则

alter table `users` convert to character set utf8mb4 collate utf8mb4_bin;
上面的代码工作正常,它正在更改数据库中的UTF类型。但是表情符号并没有正确地保存,而是保存为问号(????)

下面是我的数据库表结构示例:

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'System generated id used for uniqueness',
  `introduction` longtext COLLATE utf8mb4_bin,
  `other_details` longtext COLLATE utf8mb4_bin,    
   PRIMARY KEY (`id`),
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=41213 ;

使用以下PHP代码保存表情符号:

$dom=新的DOMDocument('1.0','UTF-8');
$strWithEmoji=“连接需要指定到MySQL的
utf8mb4
。在
DOMDocument
的封面下是什么


您在两天前的原始问题中几乎没有添加任何内容。请不要多次问同一个问题。它不起作用不是问题。请提供尝试存储的确切字节数和实际存储的确切字节数。还请为问题中的表提供实际的
SHOW CREATE TABLE
。此外,删除从您的问题中删除所有框架/第三方库,并提供一个仅用于演示问题的php+pdo/mysqli代码。同时删除laravel或任何您拥有的代码,并仅运行php+pdo/mysqli。这样您就可以隔离问题。然后确保您的仅用于php+pdo的文件采用utf8编码,并且您的pdo连接也是utf8。@KRY wh如果你不想自己孤立这个问题,你会寻求什么样的帮助?“我不认为”--很好。那么你有什么建议?@KRY“很明显,这是MySQL的问题“---很好,如果你清楚的话——你可能应该知道答案。否则,我不确定这句话是基于什么。如果您不愿意正确地隔离问题-我不确定我是否准备好玩猜谜游戏。那么祝你好运:-)“我已经更新了相关的PHP代码。”---你还没有。隔离意味着您没有任何框架或其他第三方依赖项,只有php+pdo(我可以自己在本地机器上按原样运行),没有其他依赖项。