@4sadly

Как найти пользователей с таким же login/email?

Мне нужно так, чтобы находились пользователь с таким же login, и если такой есть, происходит ошибка
вот код:
if(mysqli_query($conn, 'SELECT * FROM userst WHERE email='.$_POST['email'])==null){
			$error = 'Пользователь с таким никнеймом уже существует';
		}

но он почему-то не работает, хотя по идеи все должно быть хорошо, если выполняю в phpmyadmin sql запрос
SELECT * FROM userst WHERE email="email"
все работает
  • Вопрос задан
  • 98 просмотров
Решения вопроса 2
Fqyeh29
@Fqyeh29
↓ ИМХО ↓
1) Проверку надо делать через mysqli_num_rows
if(mysqli_num_rows(mysqli_query($conn, 'SELECT * FROM userst WHERE email='.$_POST['email']))==0)

2) email нужно обернуть в кавычки:
if(mysqli_num_rows(mysqli_query($conn, 'SELECT * FROM userst WHERE email="'.$_POST['email'].'"'))==0)

3) POST надо фильтровать, иначе взломают, читай о XSS/SQl инъекция
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
А теперь правильный ответ

$stmt = $conn->prepare('SELECT * FROM userst WHERE email=?');
$stmt->bind_param("s", $_POST['email']);
$stmt->execute();
if ($stmt->fetch()) {
      $error = 'Пользователь с таким никнеймом уже существует';
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Gilfy
Я php не знаю, но не должно быть так?

'SELECT * FROM userst WHERE email="'.$_POST['email'].'"'
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы