-1

データベースにログインが存在するかどうかを確認する方法を知りたいです。現時点では を使用していますmysql_num_rows()が、2 時間前に、これは私の Web サイトにとって安全ではないことに気付きました。単語が同じ単語と等しいかどうかを確認する方法がわかりません。文字が異なるだけです...

4

5 に答える 5

1

大文字と小文字の混合を意味すると仮定します。たとえば、paul,Paul,PAUL,pAUL は、データベース内で単一の名前として扱う必要があります。

次に、この sql クエリを使用して、名前が既に存在するかどうかを確認する必要があります。

SELECT * FROM table1 WHERE LOWER(table1.nickname) = LOWER('PaUl')

これにより、等価チェックを実行する前に、列「ニックネーム」のデータが小文字に変換され、「PaUl」が小文字に変換されます。

于 2012-08-17T13:45:14.850 に答える
0

SELECTクエリでそれを定義できます

SELECT * FROM `table` WHERE LOWER(`Nickname`) = LOWER($nickname)

*_ciただし、大文字と小文字を区別しないか、大文字と小文字を区別するかは、照合順序によって異なります_cs。持っていれば*_ci何の心配もありません。

于 2012-08-17T13:39:36.533 に答える
0

まず第一に、ユーザー名は一意で、大文字と小文字を区別しない必要があります。ユーザー名の照合フィールドをデータベースで utf8_unicode_ci または utf8_general_ci に設定します。

次に、現在のクエリを実行します。

SELECT * FROM users WHERE username = '$_var'
于 2012-08-17T13:44:40.397 に答える
0
SELECT whatever FROM users WHERE UCASE(username) = 'USERNAMEINUPPERCASE';

基本的に、UCASE()関数を使用する場合は、(クエリの目的で) テーブル内のユーザー名を大文字に変換してから、必要なものの大文字バージョンと比較して、クエリの大文字と小文字を区別しません。

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

于 2012-08-17T13:39:14.007 に答える
0

比較を行う前に、strtolower()両方の変数で関数を使用します

于 2012-08-17T13:39:26.490 に答える