Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai une interface d'admin pour ajouter/supprimer des enregistrement dans des tables avec contraites d'integrités.
Lors d'une suppression d'un enregistrement, j'ai pas envie de me prendre la tête à verifier s'il est référencé dans une table dépendante et cherche donc à détecter cela à partir de l'exception générée.
Ex :
"SQLSTATE[HY000]: General error: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ojd/poste`, CONSTRAINT `fk_poste_liste_fonctions` FOREIGN KEY (`fk_id_fonction`) REFERENCES `liste_fonctions` (`id_fonction`) ON DELETE NO ACTION ON UPDATE NO ACTION)"
Donc lorsque j'ai un code d'erreur 1451 lors de mon delete, je sais donc que mon enregistrement est utilisé ailleurs.
Seul problème je n'arrive pas à récupérer uniquement ce code dans l'exception, sauriez vous comment faire?
Pour info :j'utilise pdo.
Merci d'avance
Seb
Dernière modification par sebondus (24-10-2008 15:00:40)
Hors ligne
Bon j'ai fais ça à la bourrin :
if (strpos($e->getMessage(), 1451))
Hors ligne
bonjour,
ca donne quoi :
$e->getCode();
Hors ligne
Peut-être avec ça : http://www.manuelphp.com/php/function.pdo-errorcode.php
Hors ligne
ichevc02 a écrit:
bonjour,
ca donne quoi :Code:
$e->getCode();
Ca donne 0, dans mon exception, j'ai nul part le code d'erreur sauf dans le message.
mdelanno a écrit:
Peut-être avec ça : http://www.manuelphp.com/php/function.pdo-errorcode.php
J'y ai pensé, j'avais essayé, et j'ai eu une sale erreur (je sais plus quoi exactement)
Dernière modification par sebondus (27-10-2008 14:50:58)
Hors ligne