18-11-2006, 02:41 PM
Mouhahahaha si tout le monde met la sienne..... je veux pas etre en reste :p
Code PHP :
<?php
/**************************************************
*
* MySql
* Alexandre DUCROCQ 11/08/06
* d'après Pascaltje
*
* Classe PHP d'accès à une base de données MySql
*
* @param dbHost Adresse IP (ou nom logique) du serveur mysql
* @param dbName Nom de la base de données mysql à activer
* @param dbUser Login de l'utilisateur pour la connexion
* @param dbPass Mot de passe de l'utilisateur pour la connexion
* @return TRUE si initialisation connexion ok
*
* @see
*
*************************************************/
// test inclusion correcte
if( !defined('IN_FLUX') )
{
echo 'erreur d inclusion du fichier erreur.class.php';
exit;
}
class MySql
{
public $dbHost = ""; // hostname of the MySQL server
public $dbName = ""; // logical database name on that server
public $dbUser = ""; // database authorized user
public $dbPass = ""; // user's password
public $sql_connect_id = 0; // last result of mysql_connect()
public $errorNumber = 0; // last error number
public $errorMessage = ""; // last error message
public $errorLocation = ""; // last error location
// var de resultat
public $sql_resultat ; // ID de résultat
public $sql_num_res ; // Nombre de lignes retournées
// constructor
function __construct($dbHost = "", $dbName = "", $dbUser = "", $dbPass = "")
{
$this->dbHost = $dbHost;
$this->dbName = $dbName;
$this->dbUser = $dbUser;
$this->dbPass = $dbPass;
}
// error handler
function updateError($location)
{
$this->errorNumber = mysql_errno();
$this->errorMessage = mysql_error();
$this->errorLocation = $location;
if($this->errorNumber && SHOW_ERROR_MESSAGES)
{
echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
flush();
}
}
function connect()
{
if($this->sql_connect_id == 0)
{
$this->sql_connect_id = mysql_connect( $this->dbHost, $this->dbUser, $this->dbPass );
if(!$this->sql_connect_id)
{
$this->updateError('DB::connect()<br />mysql_connect');
return false;
}
}
return true;
}
function logOff()
{
@mysql_close($this->sql_connect_id) ;
}
/* éxecution de requètes */
function query($query)
{
if(!$this->connect())
{
return false;
}
if(!mysql_select_db($this->dbName, $this->sql_connect_id))
{
$this->updateError('DB::connect()<br />mysql_select_db');
return false;
}
// indice du resultat
$nb_res = count($this->sql_resultat);
// Exécution de la requète passée en paramètre
$commande = strtoupper(substr(trim($query), 0, 6));
$this->sql_resultat[$nb_res] = mysql_query($query, $this->sql_connect_id) ;
// Met à jour le nombre de lignes affectées par la requète envoyée
if($commande == "SELECT")
$this->sql_num_res[$nb_res] = @mysql_num_rows($this->sql_resultat[$nb_res]) ;
return $nb_res ;
}
/**************************************************************
* Retourne une ligne de resultat sous différentes formes
*************************************************************/
/* Tableau à indice numériques : $ligne[0]; */
function getRow($nb_res)
{
$ligne = mysql_fetch_row($this->sql_resultat[$nb_res]);
return $ligne;
}
/* Tableau à indice alphabétique : $ligne["ma_colonne"] ; */
function getArray($nb_res)
{
$ligne = mysql_fetch_array($this->sql_resultat[$nb_res], MYSQL_ASSOC);
return $ligne;
}
/* Objet : $ligne->ma_colonne ; */
function getObject($nb_res)
{
$ligne = mysql_fetch_object($this->sql_resultat[$nb_res]);
return $ligne;
}
/**
* fonction qui récupère le premier id dispo
*/
function get_free_id($id,$tbl)
{
$contenu="SELECT ".$id." FROM ".$tbl." ORDER BY ".$id." DESC LIMIT 0,1";
$res = $this->query($contenu);
$table = $this->getObject($res);
return $table->id+1;
}
}
?>