Почему не доходит до else?

Работало, буквально вчера. Сегодня уже нет.
$email = $_POST['email'];
$post = $pdo->prepare('SELECT * FROM subscribe WHERE email = ?');
$post->execute(['email']);
$game = $post->fetch();
	if ($game->email != $_POST['email']){
	$fields = array("email");
	$sql = "INSERT INTO subscribe SET ".pdoSet($fields,$values);
	$stm = $pdo->prepare($sql);
	$stm->execute($values);
		echo "Вы успешно подписались";
	}
	else{
		echo "email уже в базе данных";
	}

Если email-а нет в бд то он заносится и выполняется первое условие, если уже есть, второе не выполняется, но ведь работало.
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
$post->execute(['email']);
Может все же
$post->execute([$email]);
Ну или
$post->execute($_POST['email']);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
$post->execute(['email'=>$email]);
Ответ написан
Комментировать
RomaZveR
@RomaZveR
CEO AlertMoney, PHP/Golang Developer
$email = $_POST['email']; //не забудь фильтрацию потом сделать.
$post = $pdo->prepare('SELECT * FROM subscribe WHERE email = ?');
$post->execute($email);
$game = $post->fetch();
  if ($game->email != $email){
/*  
$fields = array("email");
  $sql = "INSERT INTO subscribe SET ".pdoSet($fields,$values);
*/
  $stm = $pdo->prepare($sql);
  $stm->execute($values);
    echo "Вы успешно подписались";
  }
  else{
    echo "email уже в базе данных";
  }

В комменте странные моменты - автор, поделись, что это?

Могу предложить такой вариант
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if(!$email){echo "емейл указан неверно";}

$post = $pdo->prepare('SELECT * FROM subscribe WHERE email = :email');
$post->bindParam(':email', $email, PDO::PARAM_STR);
$post->execute();
$game = $post->fetch();

if ($game->email != $email)
{
   $sub= $pdo->prepare('INSERT INTO subscribe SET email = :email');
   $sub->bindParam(':email', $email, PDO::PARAM_STR);
   if($sub->execute())
   {
         echo "Вы успешно подписались";
   }else{
         echo "Не могу сохранить подписку.";
   }
}else{
    echo "email уже в базе данных";
  }
Ответ написан
Ваш ответ на вопрос

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

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