即使表列位于phpmyadmin中,prepare语句也不区分大小写

我有一个检查登录的代码

$result5=$conn->query("SELECT * FROM admin-login WHERE username = '".$_POST['user']."' AND password = '".$_POST['pasw']."' ");

然后我切换到Prepared语句,我发现where子句中字符串之间的比较在Prepared语句中不区分大小写,但在上一个简单查询语句中是。 另请注意,我已将列中的COLLATE属性设置为latin1_general_cs,以使用phpmyadmin检查是否区分大小写。不过,我仍然能够使用密码为“ AdmIN”的预备语句登录,db的值为“ admin”。

准备好的对帐单代码:

$sql5=$conn->prepare("SELECT phone1,username FROM admin-login WHERE username = ? OR phone1 = ? OR phone2 = ? OR email = ? AND password = ? "); $sql5->bind_param("sssss",$_POST['user'],$_POST['pasw']); $sql5->execute();

任何帮助将不胜感激,我之前也阅读过关于同一问题的堆栈溢出问题,我曾尝试过使用BINARY之类的解决方案,例如WHERE BINARY password = ?来触发区分大小写,但这对我不起作用,我在准备好的语句中尝试了password COLLATE latin1_general_cs,但我仍然不知道为什么它不再起作用。

l36468146 回答:即使表列位于phpmyadmin中,prepare语句也不区分大小写

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2983089.html

大家都在问