1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
define('SERVER', 'localhost');
define('BASE', 'palmares');
define('USER', 'root');
define('PWD', '');
class Test2 extends PDO{
private static $_connexion;
private static $_tabRequete = array();
public static function getInstance(){
if(!isset(self::$_connexion)){
try{
self::$_connexion = new PDO('mysql:host='.SERVER.';dbname='.BASE, USER, PWD);
}catch(PDOEception $e){
die($e);
}
}
return self::$_connexion;
}
public static function addRequete($requete){
self::$_tabRequete[] = $requete;
}
public static function doRequetes(){
if(empty(self::$_tabRequete))
return null;
self::$_connexion->beginTransaction();
foreach(self::$_tabRequete as $requete){
if(($statement = self::$_connexion->prepare($requete)) === false){
self::transactionRollback();
return null;
}
if($statement->execute() === false){
self::transactionRollback();
return null;
}
}
self::transactionCommit();
}
public static function transactionRollback(){
self::$_connexion->rollback();
self::$_tabRequete = array();
}
public static function transactionCommit(){
self::$_connexion->commit();
self::$_tabRequete = array();
}
} |