Class simple pour ce connecter une base de donnée MySQL.
Il suffit de créer un objet de class CBaseDonnee() pour pourvoir executer une requete SQL. Le nombre de ligne est enregistrer dans un attribu, ansi que le link de connexion, le dernier ID SQL enregistrer, etc...
Source / Exemple :
<?php
class CBaseDonnee {
private $server; //Adresse de la BD
private $user; //Utilisateur pour la connexion à la BD
private $password; //Mot de passe de la connexion à la BD
private $basename; //Nom de la BD
private $link; //Identifiant de connexion MySQL
private $nbr_rows; //Nombre de ligne de la requete execute
private $erreur; //Valeur de retour des methodes
private $requete; //Requete SQL
private $result; //Ressource de la requete
private $type; //Type de requete (SELECT, ...)
/* Constructeur par defaut
- parametre entree : - $serveur = Adresse de la BD
- - $username = Utilisateur pour la connexion à la BD
- - $password = Mot de passe de la connexion à la BD
- - $database = Nom de la BD
- parametre sortie : - $this->erreur = TRUE en cas de succes, sinon retourne l'erreur générée lors connection
- Traitement :
- /
function __construct($serveur = "", $username="", $password="", $database="") {
//Initialise les attributs
$this->Init();
$this->server = strval($serveur);
$this->user = strval($username);
$this->password = strval($password);
$this->basename = strval($database);
//Test de connection à la BD
$this->ConnectBD();
return $this->erreur;
}
function Init() {
//Initialise les attributs
$this->server = NULL;
$this->user = NULL;
$this->password = NULL;
$this->basename = NULL;
$this->link = NULL;
$this->nbr_rows = NULL;
$this->erreur = NULL;
$this->result = NULL;
$this->requete = NULL;
}
/* Destructeur par defaut
- parametre entree : void
- parametre sortie : void
- Traitement : Ferme la connexion
- /
function __destruct() {
mysql_close($this->link);
}
/* ConnectBD
- parametre entree : void
- parametre sortie : - $this->erreur = TRUE en cas de succes, sinon retourne l'erreur générée lors connection
- Traitement : - Test de connexion à la base de donnée
- /
private function ConnectBD() {
$this->link = mysql_connect($this->server, $this->user, $this->password);
$db_selected = mysql_select_db($this->basename, $this->link);
if (!$db_selected) {
$this->erreur = mysql_error();
} else {
$this->erreur = TRUE;
}
return $this->erreur;
}
/* ProtectionChaineSQL
- parametre entree : $chaine : Chaine de caractere utilisé pour les requetes SQL
- parametre sortie : Chaine protègée par les caractères spéciaux et convertit les caractères spéciaux en entités HTML
- Traitement :
- /
public function ProtectionChaineSQL($chaine) {
return strval(mysql_real_escape_string(htmlspecialchars($chaine), $this->link));
}
/* ExecuteRequete
- parametre entree : Requete SQL
- parametre sortie : $this->erreur = TRUE en cas de succes, sinon retourne l'erreur générée lors connection
- Traitement : Protege la requete SQL
- Extrait le type de requete (SELECT, UPDATE,INSET, ...)
- Execute la requete
- Si le type est SELECT, enregistrer le nombre de ligne du resultat
- Retourne les erreurs
- /
public function ExecuteRequete($sql) {
$this->requete = $this->ProtectionChaineSQL($sql);
$this->type = strtoupper(substr($this->requete, 0, 6));
$this->result = mysql_query($this->requete);
if (!$this->result) {
$this->nbr_rows = 0;
$this->erreur = mysql_error();
} else {
switch ($this->type) {
case 'SELECT':
$this->nbr_rows = mysql_num_rows($this->result);
break;
default:
$this->nbr_rows = 0;
break;
}
$this->erreur = TRUE;
}
return $this->erreur;
}
/* ViderTable
- parametre entree : Chaine contenant le nom de la base à vider
- parametre sortie : $this->erreur = TRUE en cas de succes, sinon retourne l'erreur générée lors connection
- Traitement : Creation de la requete SQL pour vider la table avec le nom proteger
- Execute la requete
- Retourne les erreurs
- /
public function ViderTable($nom) {
$sql = 'TRUNCATE ' . $this->ProtectionChaineSQL($nom);
$this->erreur = mysql_query($sql, $this->link);
$this->type = NULL;
return $this->erreur;
}
/* GetNbrRows
- parametre entree : void
- parametre sortie : Entier d'enregistrement de la derniere requete SQL
- Traitement : Retourne un entier de l'attribu nbr_rows
- /
public function GetNbrRows() {
return intval($this->nbr_rows);
}
/* GetErreur
- parametre entree : void
- parametre sortie : Retourne l'attribu erreur
- Traitement :
- /
public function GetErreur() {
return $this->erreur;
}
/* GetLink
- parametre entree : void
- parametre sortie : Retourne l'attribu link
- Traitement :
- /
public function GetLink() {
return $this->link;
}
/* DernierID
- parametre entree : void
- parametre sortie : Retourne un entier du dernier ID inserer dans la BD
- Traitement :
- /
public function DernierID() {
return mysql_insert_id($this->link);
}
/* AfficheResultat
- parametre entree : Chaine contenant le nom de l'Id Css et et la class Css
- parametre sortie : Afffiche le tableau representant le resultat de la derniere requete SQL
- Traitement : Affiche un tableau
- Tant qu'il y a un champs
- Affiche les titres de colonnes en majuscule
- Tant qu'il y a une ligne d'enregistrement
- Affiche un ligne avec le contenu de chaque champs de l'enregistrment
- /
public function AfficheResultat($idstyle="", $classstyle="") {
if ($this->type == "SELECT") {
echo'<table id="' . $idstyle . '" class="' . $classstyle . '">';
$i = 0;
while ($i < mysql_num_fields($this->result)) {
$meta = mysql_fetch_field($this->result, $i);
echo '<th>' . ucwords($meta->name) . '</th>';
$i++;
}
while ($tab = mysql_fetch_row($this->result)) {
echo '<tr>';
for ($i = 0; $i < mysql_num_fields($this->result); $i++) {
echo '<td>' . $tab[$i] . '</td>';
}
echo '</tr>';
}
echo'</table>';
}
}
}
?>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.