pdo catch и вывод mysql-ошибок

Все еще пытаюсь поднять голову вокруг pdo.

У меня есть оператор insert, который выполняется с pdo. Вставка отлично работает, однако, если есть ошибка, которую я хотел бы показать пользователю.

У меня есть блок catch try try.

try{ $insertuser = $db->prepare('INSERT INTO `she_she`.`Persons` (`idnumber`,`addedby`,`firstname`, `middlename`, `surname`, `fullname`, `gender`, `birthdate`, `homelanguage`, `department`, `employeetype`, `employeestatus`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); $insertuser->execute(array($idnumber,$user,$firstname, $middlename, $surname, $fullname, $gender, $birthdate, $language, $department, $employmenttype, $personstatus)); } catch(PDOException $exception){ return $exception; } 

Если запрос завершается с ошибкой или позволяет указать дубликат IDNumber, я хочу, чтобы это отображалось пользователю.

Если я просто попробую echo переменную $ exception, она не работает.

Я хочу вернуть mysql-ошибку пользователю.

Любые советы, как всегда.

Спасибо, Райан

ОБНОВИТЬ

новый код в соответствии с предлагаемыми ответами:

  try{ $insertuser = $db->prepare('INSERT INTO `she_she`.`Persons` (`idnumber`,`addedby`,`firstname`, `middlename`, `surname`, `fullname`, `gender`, `birthdate`, `homelanguage`, `department`, `employeetype`, `employeestatus`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); $insertuser->execute(array($idnumber,$user,$firstname, $middlename, $surname, $fullname, $gender, $birthdate, $language, $department, $employmenttype, $personstatus)); } catch(PDOException $exception){ return $exception->getMessage(); } echo "exception: ".$exception; 

По умолчанию PDO не находится в состоянии, в котором будут отображаться ошибки. вам необходимо предоставить следующее в вашем соединении с БД

 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

Здесь можно увидеть больше информации

Вы должны использовать это:

 return $exception->getMessage(); 

См. Страницу документации по классу исключений:

http://www.php.net/manual/en/exception.getmessage.php