Я использую PostgreSQL в сочетании с PHP для проекта.Обновление поля столбца ТОЛЬКО Если Empty (PostgreSQL)
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$result = pg_query($dbconn, "UPDATE target.table
SET activated = true, activated_timestamp = NOW()
WHERE (activated IS NULL)
AND email = '$email'");
if (!$result) {
echo "already activated or invalid email!";
exit;
} else {
echo "updated!";
}
У меня есть target.table
, содержащие пользователей, которые могут активировать свою учетную запись, введя свой адрес электронной почты (запрос POST через форму).
В таблице каждый пользователь (с уникальным идентификатором адреса электронной почты) имеет два связанных с ним поля: activated
и activated_timestamp
.
Код выше работ, и только обновляет таблицу, если пользователь имеет не был активирован ранее.
Но$result
еще возвращает true
. Таким образом, после подачи формы страница перекликается с updated!
вместо already activated …
, и я не понимаю, почему.
Отлично, спасибо. – sdnyco