Récupérer les exceptions Postgresql
Bonjour,
Je fais mes premiers pas avec PDO et Postgresql.
J'ai créé le petit programme test suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| try{
$dbh = new PDO('pgsql:host=localhost;dbname=cinedoc', 'philippe', 'PhiLemen');
$query = "INSERT INTO s_cinedoc.t_r_pays_pay(pay_code, pay_nom_francais, pay_nationalite_masc, pay_nationalite_fem) " .
"VALUES('FR', 'France', 'français', 'française') ";
$dbh->beginTransaction();
$dbh->exec($query);
$dbh->commit();
$dbh = null;
} catch (PDOException $e) {
echo "Erreur ! : ".$e->getMessage().'<br />';
die();
}
echo '<br />fin du programme'; |
J'exécute, la ligne est insérée, tout va bien ! :ccool:
Comme j'ai une contrainte d'unicité sur la colonne pay_code, je pensais avoir un joli message d'erreur récupéré de Postgresql en relançant le programme mais non ! :calim2:
La ligne ne s'est bien sûr pas insérée une seconde fois, donc Postgresql a fait son boulot en appliquant la contrainte d'unicité. D'ailleurs, si je lance directement la requête dans PGAdmin, j'ai le message d'erreur suivant :
Citation:
ERROR: duplicate key value violates unique constraint "c_unique_pay_code"
Qu'est-ce qui cloche dans mon programme ?