Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 12/11/2007, 21h13   #1
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 160
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 160
Points : 34
Points : 34
Par défaut [POO] Classe de connexion à une base de données

Comme j'ai du mal à trouver de bon script entierement POO je me suis dit que le mieu était de faire les miens pour m'entrainer donc la je vais faire un petit projet en POO.

La pour le moment j'ai fais la classe Mysql la voici :

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
<?php
#class Mysql qui permet de gérer la connexion, déconnexion à une base de donnée
#ainsi que l'ajout, modification, suppression de donnée dans la base de donnée
 
//définition de la classe mysql
class Mysql 
{
	//déclaration des attributs
	private $serveur; //déclaration de l'attribut pour le nom du serveur
	private $user; //déclaration de l'attribut pour le nom d'utilisateur de la base de donnée
	private $pass; //déclaration de l'attribut pour le mot de passe de la base de donnée
	private $database; //déclaration de l'attribut pour le nom de la base de donnée
 
	//déclaration de la méthode constructeur
	public function __construct($serveur = "localhost",$user = "root",$pass = "",$database = "test")
	{
		//assignation des attributs de l'objet avec les variables
		$this->serveur = $serveur;
		$this->user = $user;
		$this->pass = $pass;
		$this->database = $database;
 
		//connexion avec le serveur mysql
		$this->link = mysql_connect($this->serveur, $this->user, $this->pass);
 
		//si la connexion est établit on séléctionne la base de donnée
		if($this->link)
		{
			mysql_select_db($this->database, $this->link);
		}
	}
 
	//déclaration de la méthode pour la construction d'une requête
	public function select($champs,$from,$critere)
	{
		#Exemple: select("*","personne","WHERE id='1'");
		$this->requete = mysql_query("SELECT $champs FROM $from $critere");
	}
 
	//déclaration de la méthode pour l'ajout de donnée dans une table
	public function ajout($from,$champs,$value)
	{
		#Exemple: ajout("personne","(id,nom,prenom)","('','dupont','roger')");
		mysql_query("INSERT INTO $from $champs VALUES $value");
	}
 
	//déclaration de la méthode pour la modification de donnée dans une table
	public function update($from,$champs,$critere)
	{
		#Exemple: update("personne","nom='dober'","WHERE id='1'");
		mysql_query("UPDATE $from SET $champs $critere");
	}
 
	//déclaration de la méthode pour la suppression de donnée dans une table
	public function delete($from,$critere)
	{
		#Exemple: delete("personne","WHERE id='1'");
		mysql_query("DELETE FROM $from $critere");
	}
 
	//déclaration de la méthode pour extraire les donnée d'une requête
	public function extraire()
	{
		return mysql_fetch_array($this->requete);
	}
 
	//déclaration de la méthode pour compter le nombre d'entrée dans une table
	public function rows()
	{
		return mysql_num_rows($this->requete);
	}
 
	//déclaration  de la méthode deconstructeur
	public function __destruct()
	{
		mysql_close($this->link);
	}
}
?>
je les faite celon les besoins du projet donc inutile de me dire qu'il y a pas tout (fetch_assoc ... etc).

J'aimerais des avis sur ma classe des améliorations,problème de programmation ... etc
Puis j'aimerais faire une fonction pour les boucles while exemple :

Code :
1
2
3
4
5
6
 
$exemple = mysql_query("SELECT * FROM membres");
while($exemple2 = mysql_fetch_array($exemple))
{
      echo $exemple2['pseudo'];
}
Merci
iwf-fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 08h57   #2
Membre éclairé
 
Avatar de Linio
 
Inscription : octobre 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 427
Points : 304
Points : 304
mysql_fetch_array n'est pas le plus optimal, tu devrais plutôt utiliser mysql_fetch_assoc et mysql_fetch_row selon tes besoins.
__________________
Linio
Linio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 12h51   #3
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 160
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 160
Points : 34
Points : 34
J'ai toujours utilisé mysql_fetch_array ... mais quel est la différentre entre mysql_fetch_array et assoc ?

Pour fetch_row ça peut-être utilie si on a besoin d'extraire et compter !

Sinon ma classe aucun souçis ?
iwf-fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 13h55   #4
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
C'est bien mieux d'éviter des connexion/deconnexion a ta base de données.

Tu peux utiliser le Pattern Singleton pour la connexion a ta base, ca t'evitera d'instancier une connexion et deconnexion a chaque requete.
batataw 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 07h05.


 
 
 
 
Partenaires

Hébergement Web