Astuces php
Accueil
  News 
 Scripts 
 Bouquins 
 Newsletter 
  Emplois 
 Annuaire 
 Forum 
 
Offres d'emplois
Développeur PHP, MySQL
DIAPASON Informatique est une SSII spécialisée dans le recrutement de ressources high tech pour le compte de ses clients. Rattaché au chef de pr...
 
 C'est ici
 
Avez vous lu ?
PHP 5 solutions et composants open-source
Avez vous lu ? -> PHP 5 solutions et composants open-source : Boostez et améliorez vos sites PHP avec des composants et extensions !

Voici enfin l'ouvrage pour améliorer votre site sans tout réécrire. Pourquoi réinventer la roue puisqu'il existe une multitude de composants indépendants à intégrer à votre site ou même des extensions au langage PHP qui peu...
 
 Commander
 
 Chapitres - MySQL
PHP 5 Astuces d'experts -> MySQL -> Une Classe pour gérer MySQL Une Classe pour gérer MySQL
 Une Classe pour gérer MySQL
<?php

class MYSQL {
  
// --- variables
  // -- nom de la base utilisée
  
var $db "xxxx";
  
// --- host ou IP pour connexion à la base
  
var $db_host 'localhost';
  
// --- user utilisé pour la connexion à la base
  
var $db_user 'xxxx';
  
// --- mot de passe utilisé pour la connexion à la base
  
var $db_pass 'xxxx';
  
// --- mode pour afficher les messages de mise au point
  
var $debug_mode 1;
  
// --- lien MySQL
  
var $db_link;
  
// --- utilisation des fonctions mysqli
  
var $use_mysqli 0;

  
// --- fonction d'initialisation lancée automatiquement
  // --- à l'appel de la classe
  
function MYSQL() {
    
// --- verification de l'extension mysqli
    
if ($this->use_msqli) {
      if (!
$this->test_mysqli()) $this->use_msqli 0;
    }
    
// --- connexion à la base
    
if ($this->use_msqli) {
     
$this->db_link mysqli_connect(
       
$this->db_host$this->db_user$this->db_pass);
    }
    else {
     
$this->db_link mysql_connect(
       
$this->db_host$this->db_user$this->db_pass);
    }
    if (!
$this->db_link)
      
$this->display_mysql_error('connexion_sql');
  }

  
// --- affichage des erreurs
  
function display_mysql_error($texte) {
    if (
$this->debug_mode) {
      echo 
"<b>$texte</b> erreur:";
      if (
$this->use_mysqli) echo mysqli_error();
        else echo 
mysql_error();
      echo 
"<br>\n";
    }
  }
  
  
// --- teste si l'extension mysqli est disponible
  
function test_mysqli() {
    if (!
extension_loaded('mysqli')) {
      if (!
dl('mysqli.so')) {
       return 
FALSE;
      }
    }
    return 
TRUE;
  }
 
  function 
fetch_array($result$p=NULL) {
    if (
$this->use_msqli) {
      
$result mysqli_fetch_array($result$p);
    }
    else {
      
$result mysql_fetch_array($result$p);
    }
    return(
$result);
  }

  
// --- fonction pour faire une requête SQL
  
function requete_sql($db$cde) {
    if (
$this->use_msqli) {
      
$db_selected mysqli_select_db($db$this->db_link);
      
$result mysqli_query($cde$this->db_link);
    }
    else {
      
$db_selected mysql_select_db($db$this->db_link);
      
$result mysql_query($cde$this->db_link);
    }
    if (!
$result$this->display_mysql_error('requete_sql');
    return(
$result);
  }

  
// --- création d'une requête d'insertion dans une table
  
function creation_requete_insertion(
    
$tbl$tbinfos$params='') {
    if (!
$tbl || !is_array($tbinfos) || count($tbinfos)==0) {
      return(
'');
    }
    if (!
is_array($params)) $params = array();
    
// --- tableau des champs existants dans la table
    
$tb_champs $this->tb_champs($this->db$tbl);
    
// --- creation des tableaux des champs et des valeurs
    
reset($tbinfos);
    
$txt_champs '';
    
$txt_valeurs '';
    
$i 0;
    while (list(
$cle$valeur) = each($tbinfos)) {
      
// --- ajout dans la requete si le champ existe
      
if ($tb_champs["$cle"] == 1) {
        if (
$i >0) {
          
$txt_champs .= ',';
          
$txt_valeurs .= ',';
        }
        
$txt_champs .= $cle;
        
$c $this->quote_smart($valeur);
        if (!
is_numeric($valeur)) {
          
$txt_valeurs .= "'$c'";
        }
        else {
          
$txt_valeurs .= $c;
        }
        
$i++;
      }
    }
    
// --- creation de la requete
    
if ($params['replace'] == 1) {
      
$requete "replace into $tbl ($txt_champs)";
      
$requete .= " values ($txt_valeurs)";
    }
    else {
      
$requete "insert into $tbl ($txt_champs)";
      
$requete .= " values ($txt_valeurs)";
    }
    return(
$requete);
  }
    
  
// --- création d'une requête de modification dans une table
  
function creation_requete_modification($tbl,
    
$tbinfos$id$params='') {
      
$id intval($id);
    if (!
$tbl
      
|| !is_array($tbinfos)
      || 
count($tbinfos)==0
      
|| !$id) {
        return(
'');
    }
    if (!
is_array($params)) $params = array();
    
// --- tableau des champs existants dans la table
    
$tb_champs $this->tb_champs($this->db$tbl);
    
// --- début de la requête
    
$txt_requete "update $tbl";    
    
// --- création des tableaux de champs et de valeurs
    
reset($tbinfos);
    
$i 0;
    while (list(
$cle$valeur) = each($tbinfos)) {
      
// --- ajout dans la requête si le champ existe
      
if ($tb_champs["$cle"] == 1) {
        if (
$i == 0) {
          
$txt_requete .= ' set ';
        }
        else {
          
$txt_requete .= ',';
        }
        
$valeur $this->quote_smart($valeur);
        
$txt_requete .= "$cle='$valeur'";
        
$i++;
      }
    }
    
// --- clé primaire
    
if (strlen($params['cle_primaire']) > 0) {
        
$cle_primaire $params['cle_primaire'];
    }
    else {
        
$cle_primaire 'id';
    }
    
// --- conditions
    
$txt_requete .= " where $cle_primaire=$id";
    return(
$txt_requete);
  }

  
// --- requête sql de sélection automatique
  
function auto_sql($table$tb_params=''$tb_conditions='') {
    
$tb = array();
    if (!
is_array($tb_conditions)) $tb_conditions = array();
   
// --- valeurs automatiques
    
if (strlen($tb_params['what_to_select']) == 0) {
      
$tb_params['what_to_select'] = '*';
    }
    
$tb_params["nb_start"] = intval($tb_params["nb_start"]);
    
$tb_params["nb_max"] = intval($tb_params["nb_max"]);
    if (
$tb_params["page"]>&& $tb_params["nb_items_page"]>0) {
      
$tb_params["nb_start"] = ($tb_params["page"] - 1)
        * 
$tb_params["nb_items_page"];
      
$tb_params["nb_max"] = $tb_params["nb_start"]
        + 
$tb_params["nb_items_page"];
    }
    
// --- requête
    
$cde 'select ' $tb_params['what_to_select']
      . 
' from ' $tb_params['which_tables']
      . 
' where 1';
    for (
$i=0$i<count($tb_conditions); $i++) {
      
$cde .= ' ' $tb_conditions[$i];
    }
    if (
strlen($tb_params["group_by"]) > 0) {
      
$cde .= " group by " $tb_params["group_by"];
    }
    if (
strlen($tb_params["order_by"]) > 0) {
      
$cde .= " order by " $tb_params["order_by"];
    }
    if (
intval($tb_params["nb_max"]) > 0) {
      
$cde .= " limit " $tb_params["nb_start"]
      . 
',' $tb_params["nb_max"];
    }
    
// --- renvoi de la commande SQL
    
return($cde);
  }
  
  
// --- tableau des champs disponibles dans une table
  
function tb_champs($base$table) {
    
$tb = array();
    if (
$this->use_mysqli) {
      
$result mysqli_list_fields($base$table);
      
$n mysqli_num_fields($result);
      for (
$i=0$i<$n$i++) {
        
$name mysqli_field_name($result$i);
        
$tb["$name"] = 1;
      }
    }
    else {
      
$result mysql_list_fields($base$table);
      
$n mysql_num_fields($result);
      for (
$i=0$i<$n$i++) {
        
$name mysql_field_name($result$i);
        
$tb["$name"] = 1;
      }
    }
    return(
$tb);
  }

  
// --- fonction de protection d'une requête SQL
  
function quote_smart($valeur) {
    if (
phpversion() < "4.3.0") {
      
$valeur addslashes($valeur);
    }
    else {
      
// --- stripslashes
      
if (get_magic_quotes_gpc()) {
        
$valeur stripslashes($valeur);
      }
      
// --- protection si ce n'est pas un entier
      
if (!is_numeric($valeur)) {
        if (
$this->use_mysqli)
          
$valeur mysqli_real_escape_string($valeur);
        else 
$valeur mysql_real_escape_string($valeur);
      }
    }
    return 
$valeur;
  }

}
?>
 Rechercher
Tapez un mot ou une phrase clé
 

 Téléchargement
Téléchargez les sources de l'ouvrage
PHP 5 solutions et composants open-source
Téléchargez les sources de l'ouvrage  -> PHP 5 solutions et composants open-source : Boostez et améliorez vos sites PHP avec des composants et extensions !

Voici enfin l'ouvrage pour améliorer votre site sans tout réécrire. Pourquoi réinventer la roue puisqu'il existe une multitude de composants indépendants à intégrer à votre site ou même des extensions au langage PHP qui peu...
 


Derniers tickets
  • bandeaux publicita... ()
  • Mail avec liste de... ()
  • pb install wamp ()
  • Bouton recalculer ()
  •  

    copyright astuces-php.info - Plan du site - Mylinea.org : l'annuaire des annuaires - échange de liens - Faites du fric