Отредактируйте значение MySQL при вставке, если адрес электронной почты уже существует

0

У меня есть следующая вставка MySql

mysqli_query($con,"INSERT INTO newsletters('email', 'name', 'subscribed_gdpr')VALUES('$emailclean','$nameclean','$radio_value')");

Моя структура базы данных похожа на этот идентификатор (который является автоматическим приращением), имя, адрес электронной почты, подписанный_gdpr, созданный (дата создания записи), измененная (дата внесения изменений была изменена)

Я хотел бы, что если пользователь вводит адрес электронной почты, который уже существует, чтобы обновить поле subscribed_gdpr с текущим значением занесено радио (может иметь два значения, Да или Нет)

Спасибо!

  • 2
    Создайте уникальный ключ по email и используйте ON DUPLICATE KEY UPDATE
  • 1
    GDPR плюс дыры для SQL-инъекций. О нет.
Показать ещё 1 комментарий
Теги:

1 ответ

0

Пока электронная почта является уникальным ключом, обновляет ваш SQL следующим образом:

mysqli_query($con,"INSERT INTO newsletters('email', 'name', 'subscribed_gdpr')
                   VALUES('$emailclean','$nameclean','$radio_value')
                   ON DUPLICATE KEY UPDATE 'subscribed_gdpr' ='$radio_value'");
  • 0
    Строки PHP могут и будут интерполировать переменные. Переход к объединению не устраняет никаких проблем. Часть ON DUPLICATE KEY является ответом здесь, остальное - опасный код из исходного вопроса.
  • 0
    Я не пытался исправить какие-либо проблемы с моим ответом, просто показал ему полный синтаксис для включения дублирующего ключа.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню