Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2011, 15h55   #1
Invité de passage
 
Stéphan MAITRE
Inscription : septembre 2007
Messages : 5
Détails du profil
Informations personnelles :
Nom : Stéphan MAITRE
Âge : 51

Informations forums :
Inscription : septembre 2007
Messages : 5
Points : 1
Points : 1
Par défaut Class de connexion PDO

Bonjour tout le monde, je suis 'nouveau' sur ce forum (Par mes posts...), malgré un certain temps de consultation de ce super site...

Je me décide en fin à réellement passer à l'objet et j'ai débuter la conception d'un CMS (Simple...), avec les caractéristiques suivantes :
  • Totalement 'objet'
  • Tout en français (Avec ultérieurement une 'internationalisation' en Anglais...
  • Un système de templates tiré de phpBB
  • Un système de templates tiré de phpBB
  • Un système de thèmes en XHTML strict et CSS 2.1
  • ...

Dés que ce sera possible, je vous en communiquerai plus à ce sujet. Pour le moment, j'aurai besoin d'avis pro sur l'élaboration de ma classe d'accès à la BD... je connais pas trop mal les 'généralités de l'objet, mais bon j'ai tout de même de sacré doutes...
Voici un premier jus (Incomplet) de ma classe de connexion :

Code :
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
<?php
 
class BD
{
	private $BD_Instance = null;
	private static $instance = null;
 
	private function __construct()
	{
		$this->BD_Instance = new PDO('mysql:dbname='.BD.';host='.HOST,USER,PASS);
	}
 
	public static function getInstance()
	{
		if(is_null(self::$instance))
		{
			self::$instance = new BD();
		}
		return self::$instance;
	}
 
	public function query($query)
	{
		return $this->BD_Instancee->query($query);
	}
 
	public function prepare($query)
	{
		return  $this->BD_Instance->prepare($query);
	}
 
	public function lire($query)
	{
		$test = $this->BD_Instance->prepare($query);
		$test->execute();
		return $test->fetchAll();
	}
 
	public function ecrire($query,$array)
	{
		$test = $this->BD_Instance->prepare($query);
		$test->execute($array);
		return $test->fetchAll();
	}
}
 
	const USER	= 'root';
	const HOST	= 'localhost';
	const PASS	= '';
	const BD	= 'test';
 
	$test = BD::getInstance()->lire('SELECT nom FROM categories');
	echo '<pre>', print_r($test) ,'</pre>';
 
 
	BD::getInstance()->ecrire("INSERT INTO categories(nom) VALUES(:test)",array(':test'=>'Un autre tupple!'));

J'aurai aimé votre avis avant d'aller plus loin dans le développement...
Merci d'avance,
Stéphan
steven79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 16h03   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
Hello, il faut que t'actives la gestion des erreurs, que tu vérifies si prepare renvoie bien quelque chose, dans query le prepare est inutile utilise query, dans ecrire le fetchAll est inutile aussi, t'as méthode prepare est toute seule
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 16h06   #3
Invité de passage
 
Stéphan MAITRE
Inscription : septembre 2007
Messages : 5
Détails du profil
Informations personnelles :
Nom : Stéphan MAITRE
Âge : 51

Informations forums :
Inscription : septembre 2007
Messages : 5
Points : 1
Points : 1
Par défaut Class de connexion PDO

Salut,

je n'ai pas mis la gestion des erreurs dans le code afin de ne pas surcharger le post...

Mais elle sont gérées. Je mettrai le code complet dès que j'aurai avancé un peu plus. Je prends en compte tes remarques et j'essaie de mettre cela au clair ce soir... Merci.

Stéphan
steven79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h45.


 
 
 
 
Partenaires

Hébergement Web