При входе в систему я вызываю адрес электронной почты, используя следующую переменную $email
Следует отметить, что это письмо уже подтверждено, это единственное письмо в системе, дубликатов нет.
Теперь в конфигурации учетной записи пользователь может обновить свои данные, включая адрес электронной почты.
Проблема:
Если пользователь меняет свое имя, адрес, телефон, но меньше почты, система отправляет мне следующее персональное сообщение:
Пользователь с таким адресом электронной почты уже существует!
Это же ваше электронное письмо не должно вызывать у меня этой ошибки и должно позволять вам обновлять ваши данные, но это не так.
Я сделал следующее
$stmtEmail = $con->prepare("SELECT * FROM users WHERE email=? AND id_user NOT IN (?)");
$stmtEmail->bind_param("ss",$email,$email);
но выдает ошибку в $stmtEmail->bind_param("ss",$email,$email);
Мой код:
$stmtEmail = $con->prepare("SELECT * FROM users WHERE email=?");
$stmtEmail->bind_param("s",$email);
$stmtEmail->execute();
$stmtEmail->store_result();
if ($stmtEmail->num_rows>0) {
echo json_encode(['status'=> false, 'message'=> ["email" =>"The user with this email already exists!"]]);
exit;
} else {
$stmtUpAccounts = $con->prepare("UPDATE users SET first_name=?, last_name=?, phone=?, country=?, city=?, state=?, address=?, zip_code=?, email=? WHERE id_user=?");
$stmtUpAccounts->bind_param("sssssssssi", $Ufirst_name,$Ulast_name,$Uphone,$Ucountry,$Ucity,$Ustate,$Uaddress,$Uzip_code,$Uemail,$id_user);
if ($stmtUpAccounts->execute()) {
echo json_encode(['status'=> true, 'message'=>"Your data was updated correctly"]);
exit;
} else {
echo json_encode(['status'=> false, 'message'=>"We are sorry, but we can not process your request. Try again later."]);
exit;
}
}