gpt4 book ai didi

php - 转换表列后无法获取数据

转载 作者:行者123 更新时间:2023-11-30 22:37:29 24 4
gpt4 key购买 nike

我有一个简单查询的问题。假设我有表格 colors(color, code)

CREATE TABLE IF NOT EXISTS `colors` (
`color` varchar(20) NOT NULL,
`code` varchar(20) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

有数据:

INSERT INTO colors VALUES ('blue', 'Conventional'), ('green', 'Realistic');

当我做一个简单的选择查询时

SELECT * FROM colors WHERE code = 'Realistic';

我得到相应的行。

然后,我将代码 列翻译成希腊语。所以我更新了颜色表。

UPDATE colors set code = 'Συμβατικός' WHERE color = 'blue';
UPDATE colors set code = 'Ρεαλιστικός' WHERE color = 'green';

表格已成功更新。但是,如果我现在进行查询

SELECT * FROM colors WHERE code = 'Ρεαλιστικός';

我没有得到任何结果!

为什么会这样?有什么想法吗,因为我想不通。

提前致谢。

最佳答案

您已经进入了 UTF-8 奇异而美妙的世界。

首先要知道的是:

将数据库排序规则设置为 UTF-8 是不够的。

你还需要注意一些事情。我敢打赌,您忘记或不知道要记住其中的一些事情。尝试一下,看看是否有帮助。

  • 修改您的 php.ini 文件以使用 UTF-8 作为默认字符集:default_charset = "utf-8";
  • 将 UTF-8 设置为所有 MySQL 连接的默认字符集(是的,您的连接也使用字符集)
  • 在 MySQL 方面,可能需要对 my.ini 文件进行如下修改:

    [client]
    default-character-set=UTF-8

    [mysql]
    default-character-set=UTF-8

    [mysqld]
    character-set-client-handshake = false #force encoding to uft8
    character-set-server=UTF-8
    collation-server=UTF-8_general_ci

    [mysqld_safe]
    default-character-set=UTF-8

    完成这些更改后重新启动 MySQL。

  • 如果连接客户端无法指定其与 MySQL 通信的编码,则在建立连接后您可能必须运行以下命令/查询:set names UTF-8;

关于php - 转换表列后无法获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32072471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com