2

基本的に問題は単純な気がします。しかし、それに対する修正が見つかりません。

ログイン フォームで、php を使用してデータベースにクエリを実行し、データベース テーブルからその 2 つの値を持つ行を選択して、渡されたユーザー名とパスワードをチェックします。

問題と思われるのは、exにログインするときです。

ユーザー: mm

パス: ああ

それが機能します。これは、db テーブルにあるとおりです。

しかし、今私が使用する場合

ユーザー: MM

パス: ああ

まだ動作しますか?? これはすべきではありません。私のデータベースには「MM」ではなく「mm」のユーザーしかいないためです。他の行では大文字と小文字が混在しているため、大文字と小文字を区別する必要があります

4

3 に答える 3

5

utf8_general_cs列の照合/エンコーディングを「大文字と小文字を区別しない」エンコーディングから、またはなどの大文字と小文字を区別するエンコーディングに変更する必要があります。latin1_general_cs

于 2013-03-17T02:14:19.570 に答える
1

クエリを使用してテーブルを更新できます。

ALTER TABLE `your_table`  CHARSET=latin1 COLLATE=latin1_general_cs;

の場合latin1_general_cscsは大文字と小文字を区別することを指定します。将来、大文字と小文字を区別したくない場合は、次のクエリを使用できます。

ALTER TABLE `your_table`  CHARSET=latin1 COLLATE=latin1_general_ci;

ci大文字と小文字を区別しないことを指定します。

于 2013-03-17T03:40:30.007 に答える
1

大文字と小文字を区別するエンコーディングを使用する必要があります

10.1.2から。MySQL の文字セットと照合順序

照合名には規則があります。照合名は関連付けられている文字セットの名前で始まり、通常は言語名を含み、_ci (大文字と小文字を区別しない)、_cs (大文字と小文字を区別する)、または _bin (バイナリ) で終わります。 )。

大文字と小文字を区別する likeutf8_general_csまたはlatin1_general_cs

于 2013-03-17T03:30:44.747 に答える