WhiteBachelor
@WhiteBachelor
Начинающий веб-программист.

Как правильнее всего реализовать проверку на отсутствие совпадений в SQL?

Нужно сделать проверку на отсутствие совпадений в базе данных в таблице юзеров. То есть, надо узнать, свободен ли еще логин, и можно ли зарегистрировать на него другого пользователя. Как это сделать правильней всего, при использовании PDO?
Могу предположить что-то типа:
$sql = "SELECT * FROM `users` WHERE `email` = :email";
$query = $pdo->prepare($sql);
$query->execute([':email' => $email]);
$result = $query->fetch(PDO::FETCH_ASSOC)
if (result == null) $isEmailEmpty = true;

На сколько надежен такой вариант? Возможен ли другой исход кроме null? "" например? Или []?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@Wentixon
Лучше количество получать и просто преобразовывать в boolean. В вашем решении минус в том, что выбирается слишком много ненужных данных
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
Бью себя по рукам за каждый ответ на глупый вопрос
"SELECT * FROM `users` WHERE `email` = :email limit 1" вроде так правильней

И кажется $result у вас не может быть ===null, он ===false
В случае успешного выполнения функции возвращаемое значение зависит от режима выборки. В случае неудачи, функция всегда возвращает FALSE.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы