如何更改列以支持unicode

时间:2019-03-03 01:45:33

标签: php mysql sql mysqli phpmyadmin

我已经创建了一个名为players的简单数据库表:

CREATE TABLE player (
    id              int(10)
                    NOT NULL
                    AUTO_INCREMENT
                    PRIMARY KEY,

    name            varchar(256)
                    NOT NULL
);

ALTER TABLE  players
    CHANGE name name
        varchar(256)
        CHARACTER SET utf8mb4
        COLLATE utf8mb4_unicode_ci;

我想将此条目插入数据库''中,所以我输入

INSERT INTO player (name) VALUES ("")

但是,插入时,名称值变为'???????????'

如何解决此问题并保持数据库表尽可能高效??

大多数名称是普通的ASCII字符,但有时我有这些花哨的unicode字符。

1 个答案:

答案 0 :(得分:0)

正如评论所讨论的:您已经正确更改了表格,因此name列接受utf8字符。

this MySQL 5.7 DB Fiddle 中,正确插入并显示了字符串''

很有可能是您的客户端发出的问题,即无法正确将数据传递到MySQL服务器。

由于您将PHP与mysqli扩展一起使用,因此可以使用the mysqli::set_charset function来为连接设置默认的客户端字符集:

$conn->set_charset("utf8mb4");