begin process at 2012 05 27 21:53:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > INTERFACE SIMPLIFIÉE ENTRE PHP ET MYSQL

INTERFACE SIMPLIFIÉE ENTRE PHP ET MYSQL


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Classé sous :interface, php, mysql, administration, gestion Niveau :Débutant Date de création :03/07/2005 Vu / téléchargé :7 667 / 948

Auteur : dragon3x6

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Il permet de se connecter facilement à une base de données MySql en PHP.
Il traite les différentes sortes de requêtes et permet de recupérer des données de différentes bases.
Il est aussi paramètrable.

Source

  • <?php
  • class base
  • {
  • /******** VARIABLES ********/
  • /////////////////////////////////////
  • // Variables globales de connexion //
  • /////////////////////////////////////
  • var $IP = "ip_du_serveur";//---> adresse ip du serveur MySql
  • var $UTIL = "nom_util_bdd";//--> nom d'utilisateur de la base
  • var $PASSE = "mdp_bdd";//------> mot de passe de la base
  • var $BDD = "nom_base";//-------> nom de la base sur le serveur
  • ////////////////////////////////////
  • /////////////////////////////////////
  • // Variables globales de la classe //
  • /////////////////////////////////////
  • var $Connexion_MySql;//------------> connexion au serveur MySql
  • var $Connexion_Base;//-------------> connexion a la base
  • var $Curseur;//--------------------> resultat de la requete (curseur)
  • var $Erreur;//---------------------> gestion des erreurs
  • var $Numero_Enregistrement = 0;//--> numero d'enregistrement du curseur
  • var $Ordre_sql;//------------------> ordre sql passe en parametre
  • var $Ordre_Select;//---------------> type de la requete
  • /////////////////////////////////////
  • /**************************************************/
  • /************* METHODES DE LA CLASSE ********/
  • /**************************************************/
  • //
  • // Constructeur de la classe
  • // permet de specifier specifier soi-meme les parametres de connexion
  • //
  • function base($requete)
  • {
  • if($requete[0] == '@')
  • {
  • $req = explode(':',$requete,6);
  • $this->IP = trim(substr($req[0], 1));
  • $this->UTIL = trim($req[1]);
  • $this->PASSE = trim($req[2]);
  • $this->BDD = trim($req[3]);
  • $this->Ordre_sql = trim($req[4]);
  • }
  • else
  • {
  • $this->Ordre_sql = $requete;
  • }
  • $this->connexion();
  • }
  • //
  • // Connexion au serveur MySql et a la base
  • //
  • function connexion()
  • {
  • $this->Connexion_MySql = @mysql_connect($this->IP,$this->UTIL,$this->PASSE);
  • if(!$this->Connexion_MySql)
  • {
  • $this->erreur_mysql("Impossible de se connecter au serveur de base de données");
  • return 0;
  • }
  • else
  • {
  • $this->Connexion_Base = @mysql_select_db($this->BDD);
  • if(!$this->Connexion_Base)
  • {
  • $this->erreur_mysql("Impossible de se connecter à la base");
  • return 0;
  • }
  • }
  • }
  • //
  • // Execution des requetes
  • //
  • function requete()
  • {
  • $requete = $this->Ordre_sql;
  • $requete = trim($requete);
  • $selection = strtolower(substr($requete, 0, 6));
  • $this->Curseur = @mysql_query($requete);
  • if(!$this->Curseur)
  • {
  • $this->erreur_mysql("Requête incorrecte:\n\t".$requete);
  • return 0;
  • }
  • if($selection == 'select')
  • {
  • $this->Ordre_Select = True;
  • return $this->nombre_enregistrement();
  • }
  • else
  • {
  • $this->Ordre_Select = False;
  • return $this->nombre_modification();
  • }
  • }
  • //
  • // Retourne un enregistrement de la selection
  • //
  • function enr()
  • {
  • $this->Numero_Enregistrement++;
  • $ligne_enregistrement = mysql_fetch_array($this->Curseur,MYSQL_ASSOC);
  • if($this->Numero_Enregistrement == $this->nombre_enregistrement())
  • {
  • $this->deconnexion();
  • }
  • return $ligne_enregistrement;
  • }
  • //
  • // Retourne le nombre de ligne affectee par
  • // un ordre du type UPDATE, DELETE, INSERT, etc
  • //
  • function nombre_modification()
  • {
  • $nb_modif = mysql_affected_rows($this->Connexion_MySql);
  • $this->deconnexion();
  • return $nb_modif;
  • }
  • //
  • // Retourne le nombre d'enregistrement de la selection
  • //
  • function nombre_enregistrement()
  • {
  • return @mysql_num_rows($this->Curseur);
  • }
  • //
  • // Affichage des erreurs
  • //
  • function erreur_mysql($MSG)
  • {
  • $this->erreur=@mysql_error();
  • die("<b>Erreur: </b><br><i>".$MSG."<br>".$this->erreur."</i><br><u>".@mysql_errno()."</u>");
  • }
  • //
  • // Deconnexion du serveur MySql
  • //
  • function deconnexion()
  • {
  • mysql_close($this->Connexion_MySql);
  • }
  • }
  • /**************************************************/
  • /**************** POINT D'ENTREE ************/
  • /**************************************************/
  • function sql($requete, &$objet)
  • {
  • switch ($requete)
  • {
  • Case '0'://------------------------------> Recuperation d'une ligne d'enregistrement
  • if($objet->Ordre_Select)
  • {
  • if($objet->Numero_Enregistrement<=$objet->nombre_enregistrement())
  • return $objet->enr();
  • else
  • die("La requête n'a plus d'enregistrement");
  • }
  • else
  • {
  • die("La requête ne renvoie aucun resultat");
  • }
  • break;
  • Case '1':
  • $objet->deconnexion();
  • break;
  • default://------------------------> Initialisation de l'objet
  • $objet = new base($requete);
  • return $objet->requete();
  • break;
  • }
  • }
  • ?>
<?php

class base
{
/********    VARIABLES    ********/

	/////////////////////////////////////
	// Variables globales de connexion //
	/////////////////////////////////////
	var $IP = "ip_du_serveur";//---> adresse ip du serveur MySql
	var $UTIL = "nom_util_bdd";//--> nom d'utilisateur de la base
	var $PASSE = "mdp_bdd";//------> mot de passe de la base
	var $BDD = "nom_base";//-------> nom de la base sur le serveur
	////////////////////////////////////

	/////////////////////////////////////
	// Variables globales de la classe //
	/////////////////////////////////////
	var $Connexion_MySql;//------------> connexion au serveur MySql
	var $Connexion_Base;//-------------> connexion a la base
	var $Curseur;//--------------------> resultat de la requete (curseur)
	var $Erreur;//---------------------> gestion des erreurs
	var $Numero_Enregistrement = 0;//--> numero d'enregistrement du curseur
	var $Ordre_sql;//------------------> ordre sql passe en parametre
	var $Ordre_Select;//---------------> type de la requete
	/////////////////////////////////////

/**************************************************/
/*************    METHODES DE LA CLASSE    ********/
/**************************************************/
	
	//
	// Constructeur de la classe
	// permet de specifier specifier soi-meme les parametres de connexion
	//
	function base($requete)
	{
   if($requete[0] == '@')
   {
    $req = explode(':',$requete,6);
    
	  $this->IP = trim(substr($req[0], 1));
	  $this->UTIL = trim($req[1]);
	  $this->PASSE = trim($req[2]);
	  $this->BDD = trim($req[3]);
	  
	  $this->Ordre_sql = trim($req[4]);
	 }
	 else
	 {
	   $this->Ordre_sql = $requete;
   }
	  $this->connexion();
  }

  //
	// Connexion au serveur MySql et a la base
	// 
	function connexion()
	{
		$this->Connexion_MySql = @mysql_connect($this->IP,$this->UTIL,$this->PASSE);
		
		if(!$this->Connexion_MySql)
		{
			$this->erreur_mysql("Impossible de se connecter au serveur de base de données");
			return 0;
		}
		else
		{
			$this->Connexion_Base = @mysql_select_db($this->BDD);
			
			if(!$this->Connexion_Base)
			{
				$this->erreur_mysql("Impossible de se connecter à la base");
				return 0;
			}
		}
	}

  //
	// Execution des requetes
	//
	function requete()
	{
	  $requete = $this->Ordre_sql;
	  
	  $requete = trim($requete);
	   
	  $selection = strtolower(substr($requete, 0, 6));
	
		$this->Curseur = @mysql_query($requete);
		
	  if(!$this->Curseur)
		{
			$this->erreur_mysql("Requête incorrecte:\n\t".$requete);
			return 0;
		}
		
		if($selection == 'select')
		{
		  $this->Ordre_Select = True;
      return $this->nombre_enregistrement();
		}
		else
		{
		  $this->Ordre_Select = False;
		  return $this->nombre_modification();
    }
	}

  //
	// Retourne un enregistrement de la selection
	//
	function enr()
	{
    $this->Numero_Enregistrement++;
    
    $ligne_enregistrement = mysql_fetch_array($this->Curseur,MYSQL_ASSOC);
    
    if($this->Numero_Enregistrement == $this->nombre_enregistrement())
    {
      $this->deconnexion();
    }
		return $ligne_enregistrement;
	}

  //
  // Retourne le nombre de ligne affectee par
  // un ordre du type UPDATE, DELETE, INSERT, etc
  //
  function nombre_modification()
  {
    $nb_modif = mysql_affected_rows($this->Connexion_MySql);
    
    $this->deconnexion();
    
    return $nb_modif;
  }

  //
	// Retourne le nombre d'enregistrement de la selection
	//
	function nombre_enregistrement()
	{
		return @mysql_num_rows($this->Curseur);
	}

  //
	// Affichage des erreurs
	//
	function erreur_mysql($MSG)
	{
		$this->erreur=@mysql_error();
		die("<b>Erreur: </b><br><i>".$MSG."<br>".$this->erreur."</i><br><u>".@mysql_errno()."</u>");
	}

  //
	// Deconnexion du serveur MySql
	//
	function deconnexion()
	{
		mysql_close($this->Connexion_MySql);
	}

}

	/**************************************************/
  /****************    POINT D'ENTREE    ************/
  /**************************************************/
  
  function sql($requete, &$objet)
  {
    switch ($requete)
    {
      Case '0'://------------------------------> Recuperation d'une ligne d'enregistrement
        if($objet->Ordre_Select)
        {
          if($objet->Numero_Enregistrement<=$objet->nombre_enregistrement())
            return $objet->enr();
          else
            die("La requête n'a plus d'enregistrement");
        }
        else
        {
          die("La requête ne renvoie aucun resultat");
        }
        break;
      Case '1':
        $objet->deconnexion();
        break;
      default://------------------------> Initialisation de l'objet
        $objet = new base($requete);
        return $objet->requete();
        break;
    }
  }

?>

 Conclusion

Exemples d'utilisation:

include("connexion.php");

$nb = $sql("requete_a_executer", $objet);

//Si ce n'est pas une requete de selection:

$nb contiendra le nombre de ligne modifié

//Sinon

$nb contiendra le nombre de ligne selectionné
  
//Pour recuperer les enregistrements:

for($i = 1; $i <= $nb; $i++)
  $enr = $sql(0,$objet);

//$enr correspond à un tableau contenant un ligne de la selection
//Pour acceder aux donnée: $enr['nom_colone']

//si $sql(0,$objet) est appelé $nb fois, alors la deconnexion du serveur MySql est automatique
//Toutefois si on veut se deconnecter sans recuperer tous les enregistrements, on peut appeler sql():
  $sq(1, $objet);// Deconnexion()


//Pour la definition des informations de connexions, vous devez les modifier dans le fichier "connexion.php"
//Mais vous pouvez les definirs vous-même au cas par cas:

sql("@ip_serveur:login:mot_de_passe:nom_base :requete",$objet)

//Sinon je pensais ajouter une fonctionnalité: retour de la selection dans un tableau; mais on verra plus tard.

//Le but de ce code est de simplifier la vie de ceux qui veulent coder un site internet dynamique.

//-->Voilà, dites moi ce que vous en pensez, si vous voyer des bugs à corriger ou des optimisations à faire.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip ORM : DAO, ACTIVERECORD ET DBLIST par Reldan
Source avec une capture CET EXTRAIT PERMET D'AJOUTER DANS UN TABLEAU UNE AGRÉGATION ... par Denis007
EXPORT DE BASE AU FORMAT CSV par remib74
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry
Source avec Zip Source avec une capture PAGINATION JAVASCRIPT PHP MYSQL par cod57
Source avec Zip Source avec une capture GESTION DE SCOLARITÉ [PHP] ET [MYSQL] par ayoubshadow
Source avec Zip Source avec une capture SEARCH CASIER par tlabidouille

Commentaires et avis

Commentaire de GRenard le 04/07/2005 23:15:23

MMM, c'est un peu broche à foin je trouve, mais bon...

J'ai fait une chose similaire : http://www.phpcs.com/code.aspx?ID=24813

Commentaire de dragon3x6 le 05/07/2005 11:53:00

Salut GRenard,

je ne comprend pas ton expression "broche à foin", dis moi plutôt ce qui ne va pas dans mon code ou ce qui pourrait être amélioré.

J'ai developper cette classe afin de me faciliter la vie dans le developpement de site internet dynamique et j'ai pensé qu'en apelant qu'une seule fonction avec des paramètres différent ce serait plus facile à gérer.

Je l'ai publié pour que des néophytes puissent utiliser une bdd Mysql et je pense que retenir des paramètres plutôt que plusieurs membres différents est plus pratique.

Merci pour le commentaire

Commentaire de GRenard le 05/07/2005 12:38:22

Si je veux exécuter des requêtes mais en fonctions de d'autres requêtes... je vais devoir me connecter 2 fois.
Tk, t'as regardé ma source ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

php/mysql [ par wafaewafae ] bonjour, en fait je suis entrain de r&#233;aliser une application pour la gestion d'une intendance en php/mysql alors si l'un de vous a deja r&#2 Administration MySQL, sur les connexions [ par killman__37 ] Salut &#224; tous, je ne sais pas si quelqu'un a deja eu le m&#234;me probl&#232;me, mais peut-&#234;tre quelqu'un pourrait-il quand m&#234;me me repo gestion des apostrophes entre php et mysql [ par Medgueye ] Bonjour;J'aimerai trouver de l'aide concernant la façon de gérer les apostrophes dans un champ text quand on veut faire une requete insert int:Autreme developpement d'une interface [ par redlotfi ] Bonjour à tous et à toutes, une petite intro :)Voila je suis étudiante, actuellement j'effectue un stage de fin d'études conceranant le développement; Interface graphique PHP MySQL type EasyPHP [ par butch ] Bonsoir, je programme actuellement en VB sous Access je cherche à basculer sous MySQL PHP, là pour l'instant le m'eclate, mais pour l'affichage je n' Script interface de gestion php [ par tif27940 ] Bonjour, je suis a la recherche d'un script interface de gestion php avec une connexion. merci de vos futurs réponse. Warning: Cannot modify header information - headers already sent by [ par MisterCpp ] Bonjour, Je m'en remet à vous car j'ai épuisé toutes les possibilités que j'ai pu trouver sur les forums et autre..[^^confus2] J'ai développer un sit PHP interface [ par petitmozart ] ce code PHP me genère une erreur disant: !) Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_N Débutant liste déroulante + mysql bd [ par santille ] Bonjour, Je suis débutant en PHP et j'essaie d'optimiser un script avec des listes déroulantes. Vous pouvez avoir les fichiers à http://www.fang.ch/p Gestion d'horraire php/mysql [ par tz_magnum ] Bonjour, Voilà je vous explique mon problème, j'ai 8 personnes qui travaille pour moi( 4 sur un projet et 4 sur un autre projet) Sur chaque projet j


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales