【问题标题】:Eloquent ORM, how to execute SET NAMES on every query/connection?雄辩的 ORM,如何在每个查询/连接上执行 SET NAMES?
【发布时间】:2016-10-31 09:55:26
【问题描述】:

我有一个使用 Eloquent ORM 的 API。我们的数据库使用 utf8mb4 而不是 utf8,因此它可以存储 Emoji。

我遇到的问题是我需要在每个连接开始时调用以下查询,否则返回的结果或 UTF8 和表情符号显示为问号;

SET NAMES utf8mb4;

我们已尝试在 MySQL 配置中进行设置,但由于某种原因无法正常工作。我们尝试过同时使用 SUPER 和非 SUPER MySQL 用户,但并没有什么不同。我们可以让它工作的唯一方法是在进行我们通常的查询之前先调用上述查询。

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    尝试将config/database.php的mysql部分中的字符集更改为utf8mb4

    默认

     'charset' => 'utf8'
    

    改成

     'charset' => 'utf8mb4'
    

    【讨论】:

    • 你的意思是config文件夹中的database.php吗?我没有database.php文件,所有的数据库设置都是在.env文件中完成的。
    • 对不起,我的意思是config/database.php
    猜你喜欢
    • 2014-12-24
    • 2013-08-19
    • 2016-02-26
    • 2015-12-13
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    相关资源
    最近更新 更多