@webseodesigner

Как не обновить строку если дублируется уникальное поле. в бд mysql без ошибок?

Всем доброго.
Есть таблица страниц сайта в БД в которой поле УРЛ уникально.
При редактировании страницы, возможно изменять и урл. Обновляется таблица на ура, до того момента пока все УРЛы уникальны.
Стоит попробовать изменить урл страницы на уже имеющийся в БД (по факту создать дубликат урла другой страницы) на экран вываливается ошибка.
Проверить запрос на корректное выполнение вот так:
if ($stm->rowCount() == 1) {
не выходит.
Такая проверка работает только при удачном обновлении.
Мне не нужно чтоб на экран выпадало: Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064
Мне каким то чудом нужно не обновлять страницу в бд если урл дублирует урл другой страницы.
При вставке отлично работает INSERT IGNORE
Мне нужно что то подобное на UPDATE
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
DrEnderman
@DrEnderman
Вам надо до обновления сделать дополнительный запрос чтобы узнать есть ли такое значение (новое будущее) в таблице. Если нет - обновить. Если есть - показать сообщение что не могу обновить т.к. такое значение уже есть.

Есть и другой вариант с уникальным индексом на это поле и последующей проверкой количества строк затронутыми запросом.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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