Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-10-2008 14:59:24

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Récuperer un code d'erreur

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

 

#2 24-10-2008 16:13:40

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Récuperer un code d'erreur

Bon j'ai fais ça à la bourrin :

Code:

if (strpos($e->getMessage(), 1451))

Hors ligne

 

#3 24-10-2008 16:20:08

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Re: Récuperer un code d'erreur

bonjour,
ca donne quoi :

Code:

$e->getCode();

Hors ligne

 

#4 25-10-2008 11:13:48

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Hors ligne

 

#5 27-10-2008 14:50:00

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Récuperer un code d'erreur

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages