tp5数据库插入表情没有内容,tp5插入emoji乱码,tp5插入emoji出现????,tp5修改了数据库数据集后直接入库emoji表情不报错,但是在程序里插入就变成????问号

tp5修改了数据库数据集后直接入库emoji表情不报错,但是在程序里插入就变成???问号

如何修改数据库数据集参考文章

mysql数据库插入emoji 表情报错Incorrect string value: ‘\xF0\x9F…’ for column ‘XXX’ at row 1

将config/database.php文件内的charset的值修改成utf8mb4,默认是utf8

            'charset' => 'utf8mb4', 

在增加一行

            'collation' => 'utf8mb4_unicode_ci',

修改后的文件完整代码

<?php


return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => '',
    // 用户名
    'username'        => '',
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 自动读取主库数据
    'read_master'     => false,
    // 是否严格检查字段是否存在
    'fields_strict'   => false,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
    'auto_code'       => '',
];