Avec PDO, impossible de récupérer des exceptions en connec persistante

Avec PDO, impossible de récupérer des exceptions en connec persistante - PHP - Programmation

Marsh Posté le 08-04-2008 à 16:21:03    

Bonjour.
 
J'utilise PDO pour me connecter à ma BDD Oracle et j'aimerais utiliser des connections persistantes en faisant des envoies multiples (avec un "prepare" ).
 
Cela marche très bien mais... les exceptions ne semblent plus être attrapées par mon catch (que ce soit une erreur de syntaxe ou une erreur de type de données le script crash au lieu d'afficher l'erreur).
 
Mon code est le suivant.
 
 
try {
    $dbh = new PDO("oci:dbname=//localhost/XE", 'TEST', 'TEST',
        array(PDO::ATTR_PERSISTENT => true));
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $dbh->beginTransaction();
 
 $stmt = $dbh->prepare("INSERTT INTO membres (id, pseudo) VALUES (?, ?)" );
 $stmt->bindParam(1, $id);
 $stmt->bindParam(2, $pseudo);
 
 // insertion d'une ligne
 $id = '';
 $pseudo = 'Jack';
 $stmt->execute();
 
 // insertion d'une autre ligne avec des valeurs différentes
 $id = '';
 $pseudo = 'Marchal';
 $stmt->execute();
 
    $dbh->commit();
 
} catch (Exception $e) {
 $dbh->rollBack();
    echo "Échec : " . $e->getMessage();
}
 
 
Merci d'avance pour votre aide !

Reply

Marsh Posté le 08-04-2008 à 16:21:03   

Reply

Marsh Posté le 09-04-2008 à 09:08:04    

Personne n'a ne serait ce qu'une petite idée s'il vous plait ? :(

Reply

Marsh Posté le 09-04-2008 à 09:48:29    

Comment ça ton script crashe? Tu as quoi comme message?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 09:55:10    

Quand je suis en local ça me met "Apache a eu un problème et à du fermer, voulez envoyer un message blablabla"

Reply

Marsh Posté le 09-04-2008 à 10:06:51    

ça a rien à voir avec les exceptions, ça.[:joce]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 10:07:11    

...et au passage, c'est INSERT, pas INSERTT :D


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 10:21:30    

C'est fait exprès les deux T à INSERT, c'est pour justement voir que les exceptions ne sont pas catchées (car normalement ça devrait catcher l'erreur au lieu de crasher)

Reply

Marsh Posté le 09-04-2008 à 10:22:35    

Oui mais là c'est pas ton script qui crashe, c'est apache.:D
Regarde les logs système pour voir si tu as des infos sur ce qui plante...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 11:12:53    

Quand j'enlève les connexions permanentes ça marche nickel (même avec le INSERTT) d'où mon idée que c'est bien le script.

Reply

Marsh Posté le 09-04-2008 à 11:17:44    

Il n'y a a priori pas d'erreur dans ton script.[:skeye]
Il faut que tu regardes ce que tu as comme infos système sur le plantage d'apache, sinon tu ne pourras que tatonner en aveugle.


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed