如何使用 CodeIgniter 将表情符号插入 MySQL

How to insert emoticons into MySQL using CodeIgniter

如何将 unicode 字符插入 MySQL 并使用 CodeIgniter 检索它们?有什么设置吗

这是我打印时的查询

INSERT INTO `reviews` (`description`) VALUES ('😀')

但是,它正在保存为 ????

这是我所做的。 CodeIgniter database.php

$db['default']['char_set'] = 'utf8mb4';
$db['default']['dbcollat'] = 'utf8mb4_unicode_ci';

当我测试它时它对我来说工作正常(编辑器是 Sublime Text)。

创建 MySQL table:

CREATE TABLE `reviews` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `description` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

运行 插入 CI:

$this->db->insert('reviews', array('description' => '😀'));

取回我们的数据:

$result = $this->db->get('reviews');

输出我们的结果:

echo '<pre>';
print_r($result->row());
echo '</pre>';

我们的结果:

stdClass Object
(
    [id] => 1
    [description] => 😀
)

创建 TABLE reviews ( id int(11) 无符号 NOT NULL AUTO_INCREMENT, description varchar(255) 整理 utf8mb4_unicode_ci 默认为空, 主键 (id) ) 引擎=InnoDB 默认字符集=utf8mb4 整理=utf8mb4_unicode_ci;

在database.php

中添加如下代码

$db['default']['char_set'] = 'utf8mb4'; $db['default']['dbcollat'] = 'utf8mb4_unicode_ci';