<?php
# _ /)---(\ | Dit moi wouf !
# \\ (/ . . \)
# \\__)-\(*)/ | Classe MySQL : Version 1.5.0
# \_ (_
# (___/-(____)
# Par theo7
# CC : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
# Note de version 1.5.0 :
# - Re-identation
# - Suppression du système de mise en cache des requètes
# - Utilisation de mysql_free_result
# - Ajout de l'argument "type_result" dans mysql_fetch_array
# - Ajout de la fonction select_db
# - Mini documentation
/* ---------------------------------------- Documentation ---------------------------------------- */
#-------------------------------------------------------------# #-------------------------------------------------------------#
# Vous devez connaitre : # # Vous allez apprendre : #
#-------------------------------------------------------------# #-------------------------------------------------------------#
# - La POO en PHP4 # # - A utiliser cette classe MySQL #
# - Les bases de PHP # #-------------------------------------------------------------#
# - Les bases de MySQL #
#-------------------------------------------------------------#
/* Connexion */
# Vous pouvez vous connectez directement :
# - $mysql = new mysql('server'. 'user'. 'password'. 'dataBase');
# Ou bien a l'aide d'un fichier :
# - $mysql = new mysql('mysqlInf.php');
#-------------------------------------------------------------#
# Fichier "mysqlInf.php : #
#-------------------------------------------------------------#
# - $fhost = 'server' #
# - $flogin = 'user' #
# - $fpassword = 'password' #
# - $fbase = 'dataBase' #
#-------------------------------------------------------------#
/* Changer de base de donnée */
# Après vous être connecter, si vous voulez changer de BDD faites :
# - $mysql->select_db('dataBase');
/* Executer une requete */
# Executer une requete MySQL simple :
# - $mysql->query('UPDATE qualite_scripts SET qualite="exelent" WHERE script_name="classe MySQL"');
# Executer une requete MySQL complexe :
# - $mysql->query('SELECT pseudo,prenom FROM qualite_scripts WHERE script_name="classe MySQL"'. 'Nom_de_la_requete'. 1); // Le "1" a la fin execute un mysql_fetch_array automatiquement .
# - echo 'Pseudo : '.$mysql->req['Nom_de_la_requete']['pseudo'].' Prénom : '.$mysql->req['Nom_de_la_requete]['prenom'].' .';
# Executer une requete MySQL complexe sans de feth_array automatiquement :
# - $mysql->query('SELECT pseudo,prenom FROM qualite_scripts WHERE script_name="classe MySQL"'. 'Nom_de_la_requete');
# - $mysql->fetch_array('Nom_de_la_requete');
# - echo 'Pseudo : '.$mysql->req['Nom_de_la_requete']['pseudo'].' Prénom : '.$mysql->req['Nom_de_la_requete]['prenom'].' .';
/* Deconnexion */
# Se deconnecter :
# - $mysql->close();
/* ----------------------------------------------------------------------------------------------- */
class mysql
{
// Déclaration des vars
// Informations pour la connexion a mysql
var $serveur;
var $identifiant;
var $mot_de_passe;
var $base_de_donnees;
var $flux = 0;
var $selection_base;
// Information de la requete
var $requete;
var $req;
var $nb_requete = 0;
// Resultat
var $result;
// Constructeur
function mysql($host = 'localhost', $login = 'root', $password = '', $base = 'test')
{
if(!is_file($host))
{
$this->seveur = $host;
$this->identifiant = $login;
$this->mot_de_passe = $password;
$this->base_de_donnees = $base;
$this->connect();
}
else
{
// Include du fichier de configuration
include($host);
$this->seveur = $fhost;
$this->identifiant = $flogin;
$this->mot_de_passe = $fpassword;
$this->base_de_donnees = $fbase;
$this->connect();
}
}
// Connexion
function connect()
{
$this->flux = mysql_connect($this->serveur, $this->identifiant, $this->mot_de_passe) or print(mysql_errno($this->flux).' : <span style="color: RED">Erreur Lors de la connexion a MySQL : </span><br/><span style="color: GREEN">'.mysql_error($this->flux).'</span>');
$this->selection_base = mysql_select_db($this->base_de_donnees, $this->flux) or print(mysql_errno($this->flux).' : <span style="color: RED">Erreur Lors de la selection de la base de donnée(s) <span style="color: GREEN">'.$this->base_de_donnees.'</span> :</span> <br/><span style="color: GREEN">'.mysql_error($this->flux).'</span>');
}
// Changement de BDD
function select_db($db)
{
$this->selection_base = mysql_select_db($db, $this->flux) or print(mysql_errno($this->flux).' : <span style="color: RED">Erreur Lors de la selection de la base de donnée(s) <span style="color: GREEN">'.$this->base_de_donnees.'</span> :</span> <br/><span style="color: GREEN">'.mysql_error($this->flux).'</span>');
}
// Requetes
function query($requete, $nom = '', $auto_fetch = 0, $fetch_type = MYSQL_ASSOC, $free = 1)
{
$this->requete[$nom] = mysql_query($requete, $this->flux) or print(mysql_errno($this->flux).' : <span style="color: RED">Erreur Lors de la requete a MySQL <span style="color: GREEN">'.$nom.'</span>:</span> <br/><span style="color: GREEN">'.mysql_error($this->flux).'</span>');
$this->nb_requete++; // On ajoute 1 au nombre(s) de requete(s)
// Si on veut faire un mysql_fetch_array de la requete
if($auto_fetch == 1)
$this->fetch_array($nom, $fetch_type);
// Mysql_free_result
if($free == 1)
mysql_free_result($this->flux);
}
// mysql_fetch_array
function fetch_array($nom, $type_result = MYSQl_ASSOC)
{
$this->req[$nom] = mysql_fetch_array($this->requete[$nom]);
return $this->req[$nom];
}
// Donne les information mysql
function infos()
{
echo'<p>Version du serveur MySQL : <b>'.mysql_get_server_info($this->flux).'</b><br/>';
echo'Version du protocole MySQL : <b>'.mysql_get_proto_info($this->flux).'</b><br/>';
echo'Informations sur l hôte MySQL : <b>'.mysql_get_host_info($this->flux).'</b><br/>';
echo'Détails sur le client MySQL : <b>'.mysql_get_client_info($this->flux).'</b><br/>';
echo'Connecté sous MySQL avec le login : <b>'.$this->identifiant.'</b><br/>';
echo'Connecté sous MySQL avec la BDD : <b>'.$this->base_de_donnees.'</b><br/>';
echo'Jeu de caractères : <b>'.mysql_client_encoding($this->flux).'</b><br/></p>';
}
// Quand la classe n'est plus utiliser on ferme mysql
function close()
{
mysql_close($this->flux) or print(mysql_errno($this->flux).' : <span style="color: RED">Erreur Lors de la deconnexion a MySQL :</span> <br/><span style="color: GREEN">'.mysql_error($this->flux).'</span>');
}
}
?>