小编KRY*_*KRY的帖子

在laravel迁移中,更改数据库列的排序规则不起作用

我想about_me从" users"表中更改列" " 的排序规则.为此,我使用下面的代码.我只是将整理更改为utf8mb4_unicode_ci但代码不起作用.

 public function up()
    {
        if (Schema::hasColumn("users", "about_me")) {
            Schema::table("users", function(Blueprint $table) {
                $table->collation = 'utf8mb4_unicode_ci';
                $table->charset = 'utf8mb4';
            });
        }
 }
Run Code Online (Sandbox Code Playgroud)

我已经更改了/config/database.php,这有助于我将数据保存在db中但是在获取数据库后,我发现特殊符号没有显示,当我将该列的Collat​​ion更改为utf8mb4_unicode_ci时,它工作正常.但我想在迁移中实现它.当前的代码不起作用,我需要正确的代码才能正常工作.

php mysql laravel laravel-5

3
推荐指数
1
解决办法
3528
查看次数

表情符号字符()在MySQL 5.6版中不能与utf8mb4_bin一起使用

我试图将表情符号保存到数据库记录,但每次都没有正确保存.我已经参考了如何在我的SQL数据库中存储表情符号字符,但仍然无法正常工作.
根据上述问题的解决方案,我尝试将字符集从utf8更改为utf8mb4,并将字符集从utf8mb4_bin更改为.

我尝试了一切,比如重置为默认值,然后在数据库表中更改它.我试过utf8mb4_unicode_ci,utf8_unicode_ci和utf8mb4_bin,但它没有用.

我正在使用MySQL 5.6版本.我正在使用以下查询更改排序规则

alter table `users` convert to character set utf8mb4 collate utf8mb4_bin;
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,它正在改变数据库中的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 ;
Run Code Online (Sandbox Code Playgroud)


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

$dom = new DOMDocument('1.0', 'UTF-8');
$strWithEmoji = "";
$fullContent = '<meta http-equiv="content-type" content="text/html; charset=utf-8">'
               + $strWithEmoji;
$this->save($fullContent); // Function for saving into …
Run Code Online (Sandbox Code Playgroud)

php mysql utf-8 utf utf8mb4

-2
推荐指数
1
解决办法
8775
查看次数

标签 统计

mysql ×2

php ×2

laravel ×1

laravel-5 ×1

utf ×1

utf-8 ×1

utf8mb4 ×1