2

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

这是我打印时的查询。

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

但是,它保存为????.

这是我所做的。CodeIgniter 数据库.php

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

2 回答 2

3

当我测试它时它对我来说很好用(编辑器是 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] => 😀
)
于 2015-04-27T11:04:47.790 回答
0

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

在 database.php 中添加以下代码

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

于 2020-10-02T17:52:42.523 回答