我正在学习网站登录和创建创作。我面临的可能是我的脚本不检查两个字符串是否相同的情况。 例如,Foo和foO都返回true。
我当前的PHP脚本是:
//Create query
$qry="SELECT * FROM member WHERE username='$username' AND password='$password'";
$result=mysql_query($qry);
//Check whether the query was successful or not
if($result) {
if(mysql_num_rows($result) > 0) {
//Login Successful
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['mem_id'];
$_SESSION['SESS_FIRST_NAME'] = $member['username'];
$_SESSION['SESS_LAST_NAME'] = $member['password'];
session_write_close();
答案 0 :(得分:0)
您可以使用“COLLATE latin1_general_cs”字符集来区分大写或小写。
SELECT * FROM `table` WHERE `your condiction` COLLATE latin1_general_cs;
或者您可以使用
SELECT * FROM `table` WHERE BINARY `column` = 'value'
答案 1 :(得分:0)
如果您在WINDOWS中: 你可以找到my.ini并更改lower_case_table_names = 0。 如果你在LINUX: 你可以找到my.cnf并更改lower_case_table_names = 0。
答案 2 :(得分:0)
字符集latin1的默认排序规则,即latin1_swedish_ci,恰好不区分大小写。
您可以在创建数据库架构时选择区分大小写的排序规则,例如latin1_general_cs。 看看这个链接
https://dba.stackexchange.com/questions/15250/how-to-do-a-case-sensitive-search-in-where-clause