Понимание вашей базы данных лучше.
Здесь много вопросов.
1) участвует ли ваше подготовленное заявление в транзакции?(т.е. выполняет ли откат?)
2) обновляет ли подготовленный оператор строки?
3) можете ли вы гарантировать, что база данных находится в известном состоянии после того, как исключение будет перехвачено и обработано?
Попытка игнорировать исключение - неправильный подход.Текущий код (как показано) позволяет вам повторить подготовленный оператор после того, как исключение поймано.'MySQLIntegrityConstraintViolationException
' говорит мне, что база данных не может сделать то, что вы просили;может быть дубликат ключа или удаление с использованием необходимого внешнего ключа.
Вы должны понимать ограничения таблиц базы данных, чтобы действительно знать, как реагировать на это исключение.
В случае вставки дубликатов у меня были ситуации, когда мне приходилось сообщатьмеханизм БД, чтобы игнорировать дупли или указывать на дупликации таблицы / файла, должен быть передан по конвейеру.
Лучший ответ здесь - это понять, почему ваше подготовленное утверждение вызывает исключение, а затем спланировать, как реагировать на ситуацию.Если вы уже знаете это, пожалуйста, добавьте это к вопросу, иначе мы будем хвататься за соломинку.