Bonjour, j'ai codé la classe suivante me permettant via PDO de me connecter et d'exécuter des requetes MySQL (transactions) :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
define('SERVER', 'localhost');
define('BASE', 'palmares');
define('USER', 'root');
define('PWD', '');
 
class Test 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(self::$_connexion->exec($requete) === false){
				self::$_connexion->rollBack();
				self::$_tabRequete = array();
				return null;
			}
 
		self::$_connexion->commit();
		self::$_tabRequete = array();
 
	}
 
}
 
// --- on crée une instance de connexion
TEST::getInstance();
 
// --- on ajoute des requetes de type exec seulement
TEST::addRequete('UPDATE cotations SET variation=9 WHERE cotation_id=125905');
TEST::addRequete('UPDATE cotations SET variation=11 WHERE cotation_id=125905');
 
// --- On execute les requetes
TEST::doRequetes();

Comme je n'ai jamais vraiment codé de cette manière via des variables statiques, je demande de l'aide, astuces pour améliorer mon code si vous en voyez. Déjà : est ce indiqué de créer une connexion et de lancer des requetes de cette manière sans instancier d'objet de classe ? Ps: je précise que je n'ai pas traité encore la gestion des erreurs donc pas taper

Merci