私はかなり単純なログインシステムを設計中です。現在、ユーザーがログインしようとするときに次のコードを使用して、ユーザーがログインしようとしているユーザー名と一致するエントリがデータベースにあるかどうかを判断します。(コードの後半で、一致するパスワードなどをチェックします。その部分については心配していません。)
現在、SELECTを使用してデータベース全体を変数($ wholeUserDatabase)に取り込み、それを繰り返し処理して、「username」フィールドが一致するかどうかを判断しています。
今のところ正常に動作します。しかし、私のデータベースには現在3人のユーザーがいます。データベース全体を変数に取り込むこの方法は、サイトを公開して(理論的には)より多くのユーザーを獲得すると、非常に遅くなりますか?
$connection = mysql_connect($mysql_host,$mysql_user,$mysql_password);
mysql_select_db($mysql_database, $connection);
// Take the whole user database, and store it in $wholeUserDatabase.
$wholeUserDatabase = mysql_query("SELECT * FROM myTable")
or die(mysql_error());
$boolFoundUser = false;
/* Iterate once for every entry in the database, storing the current entry
of the database into a variable $currentEntry, which is an array containing
everything related to the one user. */
while($currentEntry = mysql_fetch_array($wholeUserDatabase)) {
/* Does the "username" field of the current entry match the one
the user tried to log in with? */
if ($currentEntry['username'] == $_POST['username']) {
/* If it does, break the loop so that the $currentEntry variable
will contain the information for the user who is trying to log in,
which I will later need to check passwords, etc. */
$boolFoundUser = true;
break;
}
}
mysql_close($connection);
助けてくれてありがとう。この部分を再考する必要があるかどうか教えてください。これが他の人にも役立つことを願っています。