如何将unicode字符插入MySQL并使用CodeIgniter检索它们?是否有任何设置要做。
这是我打印时的查询。
INSERT INTO `reviews` (`description`) VALUES ('😀')
但是,它保存为????
。
这就是我所做的。 CodeIgniter database.php
$db['default']['char_set'] = 'utf8mb4';
$db['default']['dbcollat'] = 'utf8mb4_unicode_ci';
答案 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)
创建表reviews
(
id
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';