MySQL - UTF8mb4_general_ci与用户输入

时间:2017-02-10 17:42:46

标签: php mysql

我有点困难,需要一些帮助:)

我有一个MySQL表,由1列组成,使用UTF8mb4_general_ci作为排序规则。此列包含许多不同语言的许多名称。

| name            |
|-----------------|
| François Fillon |
| Obama           |
| Some CJK chars  |

我还有一个PHP数组,里面有很多名字。实施例

["Francois Fillon" => [...], "Obama" => [...]]

我想针对数据库运行这些名称,并检查每个名称是否存在。如果我们运行此声明:

SELECT * FROM `kwe` WHERE `phrase` = "Francois Fillon" OR `phrase` = "Obama" 

它将产生以下结果:

| François Fillon |
| Obama           |

注意:这是因为由于MySQL中的* _general_ci方案,表中的ç和数组中的c是等效的。这很好,因为我的用户可能最终使用常规c,而实际上他意味着使用ç。

我试图在这里解决的问题是,一旦这些结果返回到应用程序层,它们需要合并回原始数组,其中包含用户输入表单中的名称。在PHP中,“FrançoisFillon!= Francois Fillon”。

我该如何解决这个问题?

编辑(澄清):

用户输入“Francois Fillon”并将其保存到阵列中 - > MySQL将其匹配到“FrançoisFillon”并返回结果 - >数组

中不存在 $ array [“FrançoisFillon”]

0 个答案:

没有答案