Avec PDO, impossible de récupérer des exceptions en connec persistante - PHP - Programmation
Marsh Posté le 09-04-2008 à 09:08:04
Personne n'a ne serait ce qu'une petite idée s'il vous plait ?
Marsh Posté le 09-04-2008 à 09:48:29
Comment ça ton script crashe? Tu as quoi comme message?
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"
Marsh Posté le 09-04-2008 à 10:06:51
ça a rien à voir avec les exceptions, ça.
Marsh Posté le 09-04-2008 à 10:07:11
...et au passage, c'est INSERT, pas INSERTT
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)
Marsh Posté le 09-04-2008 à 10:22:35
Oui mais là c'est pas ton script qui crashe, c'est apache.
Regarde les logs système pour voir si tu as des infos sur ce qui plante...
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.
Marsh Posté le 09-04-2008 à 11:17:44
Il n'y a a priori pas d'erreur dans ton script.
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.
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 !