$wpdb->GET_RESULTS()不使用Unicode‘where’子句获取结果

时间:2018-09-06 作者:Tajin Ahmed Nipun

我只需要一个简单的查询,就可以找到一个学生用孟加拉语写的名字记录。

$student_rcrd = $wpdb->get_results("SELECT * FROM student WHERE name=\'আবুল কালাম আজাদ\'");
虽然我的数据库中有\'আবুল কালাম আজাদ\', 查询返回零行!但与此查询不同,它工作得非常好-

$student_rcrd = $wpdb->get_results("SELECT * FROM student WHERE name=\'Abul Kalam Azad\'");
<数据库中的名称字段是“utf8\\U unicode\\U ci”

1 个回复
SO网友:Walf

您的数据可能因试图存储数据库无法正确表示的多字节字符而损坏。MySQL的utf8 排序规则isn\'t actually UTF-8. 您必须将表的字符集转换为utf8mb4 (实际UTF-8),然后设置DB_CHARSET 要匹配的常量。

结束