[英]PHP SQL login case sensitive
我正在學習做網站登錄和創建創作。 我可能遇到腳本無法檢查兩個字符串是否大小寫相同的情況。 例如,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();
您可以使用“ COLLATE latin1_general_cs”字符集來區分大寫或小寫。
SELECT * FROM `table` WHERE `your condiction` COLLATE latin1_general_cs;
或者你可以使用
SELECT * FROM `table` WHERE BINARY `column` = 'value'
如果您在WINDOWS中:可以找到my.ini並更改lower_case_table_names = 0。 如果您使用的是LINUX:可以找到my.cnf並更改lower_case_table_names = 0。
字符集latin1的默認排序規則為latin1_swedish_ci,它不區分大小寫。
您可以在創建數據庫架構時選擇區分大小寫的排序規則,例如latin1_general_cs。 看這個鏈接
https://dba.stackexchange.com/questions/15250/how-to-do-a-case-sensitive-search-in-where-clause
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.