无法在MySQL表中插入♥字符

Tro*_*ley 9 php mysql

我试图用PHP将♥插入MySQL表.它来自输入字段.

表的字符集是utf8_general_ci,在PHP中我mysql_query("SET NAMES 'utf8'");在连接后立即使用.

但♥只是变成'?' 插入时

我也尝试从phpMyAdmin插入♥到表中,但它返回此错误:

Warning: #1366 Incorrect string value: '\xE2\x99\xA5' for column 'subject' at row 1
Run Code Online (Sandbox Code Playgroud)

结果也是'?' 而不是♥.

有什么原因可以解释这个问题?

Ome*_*esh 23

这是因为在表的列上定义了不兼容的字符集和排序规则.

尝试表或列的字符集更改UTF8.

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)

要么

ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8; 
Run Code Online (Sandbox Code Playgroud)