Laravel: Как я могу хранить хинди персонажа в базе данных MySql - PullRequest
0 голосов
/ 14 марта 2019

Я хочу сохранить символ хинди в базе данных mysql, используя приложение laravel

У меня есть свойства ниже с базой данных

 Database charset = utf8
 Database collation = utf8_general_ci

и эти настройки с config / database.php

 'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'db'),
        'username' => env('DB_USERNAME', 'user'),
        'password' => env('DB_PASSWORD', 'password'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_general_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

но когда я пытаюсь сохранить данные, это выдает мне эту ошибку

"message": "SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=' (SQL: select * from `col` where (`name` = \u091b\u0924\u094d\u0924\u094b\u0917) limit 1)",
"exception": "Illuminate\\Database\\QueryException",

пожалуйста, предложите мне что-нибудь, я не понимаю, чего мне не хватает

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Как подсказано в сообщении об ошибке, latin1 где-то появляется.Вероятно, это настройка по умолчанию для клиента.

Ваш config / database.php выглядит нормально.Итак, давайте рассмотрим его по-другому:

Сразу после подключения выполните команду SQL SET NAMES utf8.

Я не могу сказать, откуда исходит \u091b\u0924\u094d\u0924\u094b\u0917, но вы должны действительно использоватьUTF-8 кодировка в вашем клиенте, а не эквивалент Unicode.

0 голосов
/ 15 марта 2019

Я устанавливал Charset utf8 и Collation utf8_general_ci для базы данных и таблицы но нам нужно проверить, имеют ли столбцы таблицы одинаковые Charset и Collation или нет, я пропустил одно и то же или не знал об этом:)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...