Я играл с Zend Framework, чтобы попытаться обнаружить исключения БД и обработать их. К сожалению, как только вы поймали исключение, метод getCode () всегда возвращает «0», поэтому я использовал следующий код для проверки на наличие дубликатов:
try {
$model->insert($data);
$added++;
} catch (Zend_Db_Exception $e) {
if(strstr($e->getMessage(), '1062 Duplicate')) {
// duplicate
$duplicates++;
} else {
// general error
$errors++;
}
}
Не самый изящный код, который я знаю, поэтому, если кто-то знает, как лучше обрабатывать эти исключения, или имеет ссылку на код исключения, пожалуйста, добавьте!