我已经创建了一个名为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字符。
答案 0 :(得分:0)
正如评论所讨论的:您已经正确更改了表格,因此name
列接受utf8字符。
在 this MySQL 5.7 DB Fiddle 中,正确插入并显示了字符串''
。
很有可能是您的客户端发出的问题,即无法正确将数据传递到MySQL服务器。
由于您将PHP与mysqli扩展一起使用,因此可以使用the mysqli::set_charset
function来为连接设置默认的客户端字符集:
$conn->set_charset("utf8mb4");