У меня есть страница registration.php, которую я создал, и мне нужно проверить, нет ли имени пользователя в моей базе данных, чтобы у меня не было 2 членов с тем же именем …
Вот как я ввожу информацию о пользователе в базу данных (имя пользователя, пароль, дата регистрации и т. Д.):
mysql_query("INSERT INTO UserDb (ID, TimeStamp, UserName, Password) VALUES ('$ipaddress', NOW(), '$user_username', '$user_password')");
Как я могу проверить эту базу данных «UserDb» в поле «UserName», чтобы убедиться, что переменная пользователя «$ user_username» еще не существует?
Вы можете сделать поле имени пользователя в базе данных первичным или уникальным, что гарантирует уникальность имени пользователя в базе данных.
Затем, если вы попытаетесь вставить уже существующее имя пользователя, функция mysql_query () завершится неудачно, вернув FALSE .
Кроме того, вы всегда должны запрашивать базу данных о существовании имени пользователя, используя простой оператор select:
SELECT username FROM table WHERE username='$php_username_var';
Вы можете сделать UserName
уникальным полем. Затем MySQL откажется вставить новую запись, если имя пользователя уже существует.
В качестве альтернативы вы можете запустить запрос, ищущий имя пользователя. Если он не существует, вставьте его. Оберните это в транзакцию, чтобы быть уверенным, что после поиска пользователя добавлен новый новый с тем же именем, прежде чем вы добавите новый.
создайте уникальный ключ в UserName и, если ошибка INSERT, проверьте номер ошибки.
Лучше сначала проверить имя пользователя, а не в зависимости от базы данных, чтобы сообщить вам об ошибке – всегда лучше быть явным, а не подразумевать функциональность.
Кроме того, вам может потребоваться рассмотреть ситуацию, когда есть одна или несколько существующих записей с одинаковым именем пользователя.
Например, если пользователь подписывается на подписку, отменяется через несколько месяцев, а затем подписывается позже.
Иногда лучше заново открыть учетную запись, а в других случаях просто создать новую … В этом случае может быть нормально иметь повторяющиеся строки с тем же именем пользователя, если активен только текущий, и отдых для целей исторической отчетности.
На самом деле вам может потребоваться дублирование строк, если в ваших биллинговых таблицах, заметках и т. Д. Упоминаются старые экземпляры пользователей. Если вы удалили пользователя, это вызовет проблемы с вашей отчетностью.
Кроме того, совет – используйте адрес электронной почты пользователя как свое имя пользователя – вы знаете, что это уникальная для них строка, дает вам возможность по умолчанию связаться с ними и может быть подтверждена при регистрации.