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

时间:2015-04-27 10:04:51

标签: codeigniter unicode utf-8 utf8mb4

如何将unicode字符插入MySQL并使用CodeIgniter检索它们?是否有任何设置要做。

这是我打印时的查询。

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

但是,它保存为????

这就是我所做的。 CodeIgniter database.php

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

2 个答案:

答案 0 :(得分:2)

当我测试它时,它对我来说很好(编辑器是Sublime Text)。

创建MySQL表:

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] => 😀
)

答案 1 :(得分:0)

创建表reviewsid int(11)unsigned NOT NULL AUTO_INCREMENT, description varchar(255)收集utf8mb4_unicode_ci默认为空, 主键(id) )ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

在database.php中添加以下代码

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