查询数据库时如何检查字符串的大小写?例如,使用此声明:
mysql_query("SELECT id FROM members WHERE username = '$username'");
数据库中的值是“Test”。但是,用户可以键入“test”,它仍然可以工作。如何查看确切的案例?我已经尝试过===和==,但显然它们在SQL中不起作用。
答案 0 :(得分:3)
您的整理需要区分大小写。
将用户名列的排序规则更改为区分大小写的排序规则。
例如,如果您仅在用户名列中使用拉丁字符,请将其更改为latin1_general_cs
或latin7_general_cs
ALTER TABLE `members` CHANGE `username` `username` VARCHAR( 500 ) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL
或
ALTER TABLE `members` CHANGE `username` `username` VARCHAR( 500 ) CHARACTER SET latin7 COLLATE latin7_general_cs NOT NULL
答案 1 :(得分:0)
您使用的SQL服务器是什么?鉴于你正在使用PHP,我将假设它是mysql并发送给你here。
答案 2 :(得分:-3)
使用==运算符检查数据库的值,例如:
$row=mysql_query("SELECT id FROM members WHERE username = '$username'");
while($rowData=mysql_fetch_assoc($row)) {/* fetch the value */
if($rowData['value']=='test') {
echo "yes value is correct";/* code for statement */
}
}