MySQL设置在Laravel中正确的字符和排序规则 [英] MySQL setting for correct character and collation in Laravel
问题描述
我正在将外部数据库(只读)与本地数据库(测试系统)一起使用.
I am using external DB(read only) with local DB(test system).
因此,每次从外部数据库获取数据时,每次出现如下异常警告时,都会出现默认的空字符(如"...").
So everytime I getting as below exception warning with default null charater like "�" when getting data from external DB.
如何根据自己的情况修改数据库设置?谢谢.
How should I modify DB setting in my situation? Thanks.
(3/3)QueryException
SQLSTATE [HY000]:常规错误:1366错误的字符串值:'\ xF8peri ...'为第1行的'customer_name'列(SQL:插入customers
(id
,customer_name
,
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF8peri ...' for column 'customer_name' at row 1 (SQL: insert into customers
(id
, customer_name
, customer_email
) values (10008, Ol**n N***n K***t�pe AS, n***n@k***t.no))
外部数据库
character_set_client = utf8
character_set_client = utf8
character_set_connection = latin1
character_set_connection = latin1
character_set_database = utf8
character_set_database = utf8
character_set_filesystem =二进制
character_set_filesystem = binary
character_set_results = latin1
character_set_results = latin1
character_set_server = utf8
character_set_server = utf8
character_set_system = utf8
character_set_system = utf8
collation_connection = utf8_general_ci
collation_connection = utf8_general_ci
collation_database = latin1_swedish_ci
collation_database = latin1_swedish_ci
collation_server = latin1_swedish_ci
collation_server = latin1_swedish_ci
服务器Mysql版本5.1.
Server Mysql version 5.1.
内部数据库
character_set_client = utf8mb4
character_set_client = utf8mb4
character_set_connection = utf8mb4
character_set_connection = utf8mb4
character_set_database = utf8mb4
character_set_database = utf8mb4
character_set_filesystem =二进制
character_set_filesystem = binary
character_set_results = utf8mb4
character_set_results = utf8mb4
character_set_server = latin1
character_set_server = latin1
character_set_system = utf8
character_set_system = utf8
collation_connection = utf8mb4_general_ci
collation_connection = utf8mb4_general_ci
collation_database = utf8mb4_unicode_ci
collation_database = utf8mb4_unicode_ci
collation_server = latin1_swedish_ci
collation_server = latin1_swedish_ci
MySQL MySQL 5.7.19版
SErver MySQL version 5.7.19
测试系统环境: Win10,WAMPSERVER(MySQL v5.7.19,PHP v7.1.9)
Test System Enviroments: Win10, WAMPSERVER(MySQL v5.7.19, PHP v7.1.9)
推荐答案
\ xF8是一种unicode,它不适用于latin和latin_swedish字符集.您必须将字符集更新为UTF8或UTF8mb4,并将排序规则更新为utf8_general_ci或utf8mb4_general_ci
\xF8 is a kind of unicode, it doesn't work with latin and latin_swedish character set. You have to update your character set to UTF8 or UTF8mb4 and collation to utf8_general_ci or utf8mb4_general_ci
这篇关于MySQL设置在Laravel中正确的字符和排序规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!