par
sadeq » 02 janv. 2008, 14:39
Ô, excuse moi j'ai pas vu que tu utilise PDO. L'environement PDO permet de mettre en oeuvre des transactions pour emettre des requêtes.
Une transaction est un espace temporaire de dialogue client/serveur où une suite de requêtes peut être exécutée et testée. Dans le cas d'erreur on peut faire un ROLLBACK(annulation) sinon si tout va bien un COMMIT (validation)
Exemple:
<?php
try {
//Se connecter par PDO
$connexion = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//Commencer une transaction
$connexion->beginTransaction();
//Requête
$connexion->exec("insert into client values (3, 'Momo')");
$connexion->exec("insert into client values (4, 'Lolo')");
//Valider les requête et arrêter la transaction
$connexion->commit();
echo "Requêtes exécutées avec succès";
} catch (PDOException $e) { //Gestion des erreurs causées par les requêtes PDO
//Annuler la transaction
if ($connexion) $connexion->rollBack();
//Afficher l'erreur
echo "Échec : " . $e->getMessage();
}
?>
L'instruction php TRY { } CATCH () {} permet de capturer les erreurs et de les gérer d'une façon centralisée.
Quand on reste dans le try {} c'est qu'il n'y a pas d'erreur.
Ô, excuse moi j'ai pas vu que tu utilise PDO. L'environement PDO permet de mettre en oeuvre des transactions pour emettre des requêtes.
Une transaction est un espace temporaire de dialogue client/serveur où une suite de requêtes peut être exécutée et testée. Dans le cas d'erreur on peut faire un ROLLBACK(annulation) sinon si tout va bien un COMMIT (validation)
Exemple:
[php]
<?php
try {
//Se connecter par PDO
$connexion = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//Commencer une transaction
$connexion->beginTransaction();
//Requête
$connexion->exec("insert into client values (3, 'Momo')");
$connexion->exec("insert into client values (4, 'Lolo')");
//Valider les requête et arrêter la transaction
$connexion->commit();
echo "Requêtes exécutées avec succès";
} catch (PDOException $e) { //Gestion des erreurs causées par les requêtes PDO
//Annuler la transaction
if ($connexion) $connexion->rollBack();
//Afficher l'erreur
echo "Échec : " . $e->getMessage();
}
?>[/php]
L'instruction php TRY { } CATCH () {} permet de capturer les erreurs et de les gérer d'une façon centralisée.
Quand on reste dans le try {} c'est qu'il n'y a pas d'erreur.