Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在SELECT查询中区分大写或小写单词_Php_Mysql_Select - Fatal编程技术网

Php 如何在SELECT查询中区分大写或小写单词

Php 如何在SELECT查询中区分大写或小写单词,php,mysql,select,Php,Mysql,Select,基本上我觉得问题很简单。但是找不到任何解决办法 在登录表单中,我使用php查询我的数据库,该数据库通过从数据库表中选择任何具有该2个值的行来检查传递的用户名和密码 问题似乎是当我登录ex时 用户:mm 通行证:oo 这很有效。这是正确的,因为它们在db表上 但是现在如果我使用 用户:MM 通行证:oo 还能用吗??这是不应该的。因为我的数据库中只有“mm”而不是“mm”用户。 我需要它来区分上层和下层 因为在其他行中,我混合了上下两个字母您必须将列的排序规则/编码从“不区分大小写”的编码更改为区

基本上我觉得问题很简单。但是找不到任何解决办法

在登录表单中,我使用php查询我的数据库,该数据库通过从数据库表中选择任何具有该2个值的行来检查传递的用户名和密码

问题似乎是当我登录ex时

用户:mm

通行证:oo

这很有效。这是正确的,因为它们在db表上

但是现在如果我使用

用户:MM

通行证:oo

还能用吗??这是不应该的。因为我的数据库中只有“mm”而不是“mm”用户。 我需要它来区分上层和下层
因为在其他行中,我混合了上下两个字母

您必须将列的排序规则/编码从“不区分大小写”的编码更改为区分大小写的编码,例如
utf8\u general\u cs
latin1\u general\u cs

您需要使用区分大小写的编码

排序规则名称有一个约定:它们以与其关联的字符集的名称开始,通常包括语言名称,并以_ci(不区分大小写)、_cs(区分大小写)或_bin(二进制)结束


因此,请使用区分大小写的,如
utf8\u general\u cs
latin1\u general\u cs

您可以使用以下查询更新表:

ALTER TABLE `your_table`  CHARSET=latin1 COLLATE=latin1_general_cs;
如果说
latin1\u general\u cs
cs
指定它区分大小写。如果您希望将来不区分大小写,可以使用以下查询:

ALTER TABLE `your_table`  CHARSET=latin1 COLLATE=latin1_general_ci;

ci
指定它不区分大小写。

感谢所有正确的答案。:)但是不得不接受第一个reply@MoAdel没问题,非常好,谢谢你指出ci和cs部分。。所有的答案我都答对了,但我不得不接受第一个答案