Здраствуйте, столкнулся с такой непонятной проблемой
try{
$form->delete();
}catch( CDbException $ex){
$message = $ex->getMessage();
$code = $ex->getCode();
if ( $code == 1451 && strpos($message, GoodTypes::FK_CATEGORY. )>0 )
$message = "Can't delete type. It using in categorys";
}
в переменной $message у меня следующее сообщение:
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`honey`.`good_categorys`, CONSTRAINT `good_categorys_fk` FOREIGN KEY (`type_id`) REFERENCES `good_types` (`id`))
Я думал, что очевидно и в $code у меня код ошибки для SQL-выражения, то есть 1451. Ну не тут то было. Оказывается там 0. Я посмотрел исходники, действительно никакого намека на то чтобы возвращать код ошибки для SQL-выражений, через средства PDO.
Возникает вопрос, как получить этот код ошибки, так как возникла ситуация в зависимости от кода выдавать разные сообщения?