вы видите, у меня есть этот запрос:
$sql = "INSERT INTO visitor( visitor_username, email, PASSWORD )
SELECT * FROM ( SELECT '$username', '$email','$password')
AS tmp WHERE NOT EXISTS
(SELECT admin.admin_username, admin.email FROM admin AS admin
WHERE admin.admin_username = '$username' OR admin.email = '$email'
UNION SELECT staff.staff_username, staff.email FROM staff
AS staff WHERE staff.staff_username = '$username' OR
staff.email = '$email' ) LIMIT 1";
в основном, если значения (visitor_username, email) не существует в таблице admin / staff, мы вставляем значения, это работает довольно хорошо и быстро,но хорошее решение не всегда приносит радуги.
, если мы не можем вставить какие-либо значения в таблицу, я возвращаю это сообщение об ошибке
echo "User already exists. Please choose a different email address or username.";
Так как я не могу определить, какое из них существовало, я хотел бычтобы в конкретном случае возвращалась ошибка для имени пользователя или адреса электронной почты.
Должен ли я разделить запрос (один выбор, затем вставить) или есть какой-либо другой способ, которым я не нахожу онлайн, чтобы сделать то же самоеquery?
Моя цель - вернуть конкретное сообщение об ошибке с этим запросом, например:
«Ошибка: имя пользователя уже существует» или «Ошибка: электронная почта уже существует».
Спасибо за проверку и пытаться помочь мне заранее!