Bonjour,
Je suis apprenti en programmation et on m'a demandé de réaliser une application en PHP (elle sera utilisée par une seule personne par la suite).
Après beaucoup de recherches sur le net et de bidouilles dans mon code je m'en remet à vous !
J'ai un souci sur l'utilisation de PDO, j'ai mis ce code dans un fichier connect.php dont je fait un include avant mes requêtes :
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 <?php try { $db_host = "localhost"; $db_user = "xxx"; $db_pass = "xxx"; $db_name = "xxx"; $bdd = new PDO("mysql:host=$dbhost;dbname=$db_name;charset=utf8", $db_user, $db_pass); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); }?>
Cela fonctionne mais je me demande si c'est une bonne pratique à adopter (étant apprenti autant commencer correctement...!)
Le fait de se connecter à chaque requête peut-il poser des problèmes de performance et/ou de sécurité ?
J'ai cru comprendre que les variables globales et la persistance du PDO étaient à proscrire, donc je me suis renseigné sur le singleton qui semble être plus "propre" mais je ne parvient pas à utiliser ma classe de connexion et plus précisément à appeler ses fonctions par la suite...
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 <?php class Connexion { private static $connect = null; private $bdd; private function __construct() { try { $db_host = "localhost"; $db_user = "xxxx"; $db_pass = "xxxx"; $db_name = "xxxx"; $bdd = new PDO("mysql:host=$dbhost;dbname=$db_name;charset=utf8", $db_user, $db_pass); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $bdd; } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } } public static function getInstance() { if(is_null(self::$connect)) { self::$connect = new Connexion(); } return self::$connect; } public function requete($req) { $query = $this->bdd->query($req); return $query; } public function preparation($req) { $query = $this->bdd->prepare($req); return $query; } public function execution($query, $tab) { $req = $query->execute($tab); return $req; } } ?>
Donc ma grande question dans tout ça : Inclure le PDO dans la page ou se servir d'une classe singleton (ou autre) ??
Merci d'avance de votre aide et de votre temps !![]()
Partager