尊重我有PHP和MySQL的一個問題:大寫未在PHP/MySQL的
與帳戶的用戶:
username: star
password: 4lask4
轉換爲大寫並不:
username: StAr
password: 4LasK4
可與登錄尊重。
可能是什麼問題?
感謝
尊重我有PHP和MySQL的一個問題:大寫未在PHP/MySQL的
與帳戶的用戶:
username: star
password: 4lask4
轉換爲大寫並不:
username: StAr
password: 4LasK4
可與登錄尊重。
可能是什麼問題?
感謝
排序規則確定兩個字符串是否相等。您應該將用戶名和密碼列的排序規則更改爲區分大小寫或二進制。例如:
alter table TableName modify username varchar(xx) collate utf8_bin,
modify password varchar(xx) collate utf8_bin;
現在我有latin1_swedish_ci,所以我將其更改爲utf8_bin? – user2467899
也ascii_bin它可以嗎?非常感謝 – user2467899
使用latin1_bin:請注意,您的用戶名僅限於西歐和美洲語言。 –
退房列定義,並確保您的排序規則是不區分大小寫(CI)。您可以試試這個:
alter table your_table modify username varchar(xx) collate utf8_bin
許多MySQL安裝的默認排序規則設置爲utf8_general_ci。這使得這兩個操作產生完全相同的結果。
SELECT * from users WHERE name = 'StAr'
SELECT * from users WHERE name = 'star'
您可以嘗試在數據庫中更改姓名列的排序規則。或者你也可以使用這樣的查詢:
SELECT * from users WHERE name = 'StAr' COLLATE utf8_bin
這utf8_bin整理比較精確的平等。但是,如果將COLLATE放入查詢中,則可能會禁用查詢的索引並導致MySQL性能問題。
我會懷疑你正在使用不區分大小寫的表格整理。 –
http://dev.mysql.com/doc/refman/5.5/en/charset-general.html – CBroe
我立即在phpmyadmin中檢查 – user2467899