282 lines
7.6 KiB
PHP
Executable File
282 lines
7.6 KiB
PHP
Executable File
<?php
|
|
|
|
// +----------------------------------------------------------------------+
|
|
// | Class de connexion Base de donn?es MySQL |
|
|
// +----------------------------------------------------------------------+
|
|
// | 5 Septembre 2004 |
|
|
// +----------------------------------------------------------------------+
|
|
// | Ceci est une classe pour la cr?ation d'objet de connexion ? une |
|
|
// | base de donn?e MySQL, ainsi que des m?thodes pour la gestion |
|
|
// | et les diff?rentes possibilit?s de s?lection. |
|
|
// +----------------------------------------------------------------------+
|
|
// | Auteur: Nottet Thomas |
|
|
// +----------------------------------------------------------------------+
|
|
// | Remarque: Tous les arguments des m?thodes sont de types STRING |
|
|
// +----------------------------------------------------------------------+
|
|
//
|
|
|
|
class Mysql
|
|
{
|
|
function Mysql($srv,$db,$usr,$pwd) //Constructeur
|
|
{
|
|
/* Ouverture d'une connexion ? un serveur MySQL et
|
|
selection de la table ? utiliser
|
|
|
|
$srv = nom du serveur MySQL
|
|
$db = Base de donn?es ? utiliser
|
|
$usr = nom d'utlisateur du serveur MySQL
|
|
$pwd = mot de passe de cette utilisateur
|
|
*/
|
|
|
|
$this->db=$db;
|
|
$this->id_connect=@mysql_connect($srv,$usr,$pwd);
|
|
$dbselect=@mysql_select_db($this->db, $this->id_connect);
|
|
if(!$dbselect)
|
|
{
|
|
$this->Close();
|
|
$this->id_connect=false;
|
|
}
|
|
}
|
|
|
|
public function Close()
|
|
{
|
|
@mysql_close($this->id_connect);
|
|
}
|
|
|
|
public function Select($champs,$tables,$conditions,$group,$order,$nbrec,$liminf)
|
|
/* Effectue une requ?te SELECT sur la table choisie
|
|
|
|
RETOUR: une matrice (nbre de records X nbre de champs)
|
|
false en cas d'?chec ou 0 enregistrement
|
|
|
|
$champs = une liste des champs s?par?s par ,
|
|
$tables = une liste des tables s?par?es par , avec alias si n?cessaire
|
|
$conditions = liste des conditions s?par?s par des op?rateurs logiques
|
|
$group = champ(s) sur le(s)quel(s) sera effectu? un regroupement
|
|
$order = champ(s) sur le(s)quel(s) seront tri?s les enregistrements
|
|
(+ ASC pour croissant et DESC pour d?croissant)
|
|
$liminf = index du premier enregistrement de l'intervalle ? retourner
|
|
$nbrec = nombre d'enregistrements ? retourner
|
|
*/
|
|
{
|
|
$this->total_req++;
|
|
|
|
$query="SELECT ".$champs." FROM ".$tables;
|
|
if(!empty($conditions))
|
|
{
|
|
$query=$query." WHERE ".$conditions;
|
|
}
|
|
if(!empty($group))
|
|
{
|
|
$query=$query." GROUP BY ".$group;
|
|
}
|
|
if(!empty($order))
|
|
{
|
|
$query=$query." ORDER BY ".$order;
|
|
}
|
|
if(!empty($nbrec))
|
|
{
|
|
if(!empty($liminf))
|
|
{
|
|
$query=$query." LIMIT ".$liminf.", ".$nbrec;
|
|
}
|
|
else
|
|
{
|
|
$query=$query." LIMIT ".$nbrec;
|
|
}
|
|
}
|
|
if($this->id_connect != false)
|
|
{
|
|
$res=@mysql_query($query, $this->id_connect);
|
|
if (empty($res))
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
$nbRows=@mysql_num_rows($res);
|
|
if ($nbRows==0)
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
for($i=0;$i<$nbRows;$i++)
|
|
{
|
|
$enregs[$i]=@mysql_fetch_array($res);
|
|
}
|
|
return $enregs;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function Count($champs,$tables,$conditions) {
|
|
$this->total_req++;
|
|
$query = "SELECT COUNT(".$champs.") AS count FROM ".$tables;
|
|
if(!empty($conditions)) {
|
|
$query.= " WHERE ".$conditions;
|
|
}
|
|
$res = @mysql_query($query, $this->id_connect);
|
|
|
|
if($res) {
|
|
$res2 = mysql_fetch_array($res);
|
|
return $res2['count'];
|
|
}
|
|
else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
public function Insert($champs,$valeurs,$table)
|
|
/* Effectue une requ?te INSERT sur une table de la
|
|
base s?lectionn?e
|
|
|
|
RETOUR : True en cas de r?ussite
|
|
False en cas d'?chec
|
|
|
|
$champs = une liste des champs s?par?s par ,
|
|
$valeurs = une liste de valeurs pour les champs correspondant s?par?s par ,
|
|
$table = la table dans laquelle il faut ins?rer les enregistrements
|
|
*/
|
|
{
|
|
$this->total_req++;
|
|
|
|
$query="INSERT INTO ".$table." (".$champs.")
|
|
VALUES (".$valeurs.")";
|
|
if($this->id_connect != false)
|
|
{
|
|
$res= @mysql_query($query, $this->id_connect);
|
|
if ($res)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
//return mysql_error();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
//return mysql_error();
|
|
}
|
|
}
|
|
|
|
|
|
public function Delete($table,$conditions)
|
|
/* Effectue une requ?te DELETE sur une table de la
|
|
base s?lectionn?e
|
|
|
|
RETOUR : Le nombre d'enregistrements supprim?s
|
|
False en cas d'?chec
|
|
|
|
$table = la table dans laquelle il faut ins?rer les enregistrements
|
|
$conditions = liste des conditions s?par?s par des op?rateurs logiques
|
|
*/
|
|
{
|
|
$this->total_req++;
|
|
|
|
$query="DELETE FROM ".$table;
|
|
if(!empty($conditions))
|
|
{
|
|
$query=$query." WHERE ".$conditions;
|
|
}
|
|
|
|
if($this->id_connect != false)
|
|
{
|
|
$res=@mysql_query($query, $this->id_connect);
|
|
if (empty($res))
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return mysql_affected_rows($this->id_connect);
|
|
}
|
|
}
|
|
}
|
|
|
|
public function Update($tables,$champs,$valeurs,$conditions)
|
|
/* Effectue une requ?te UPDATE sur une table de la
|
|
base s?lectionn?e
|
|
|
|
RETOUR : Le nombre d'enregistrements mis ? jour
|
|
False en cas d'?chec
|
|
|
|
$tables = listes de tables dans lesquelles il faut mettre ? jour les enregistrements
|
|
$champs = Champs ? mettre ? jour : soit une valeur
|
|
soit un vecteur si il y a plusieurs champs
|
|
$valeurs = Valeurs pour mettre ? jour : soit une valeur
|
|
soit un vecteur si il y a plusieurs champs
|
|
$conditions = liste des conditions s?par?s par des op?rateurs logiques
|
|
*/
|
|
{
|
|
$this->total_req++;
|
|
|
|
$query="UPDATE ".$tables." ";
|
|
$nbchamps=count($champs);
|
|
if ($nbchamps!=0)
|
|
{
|
|
if ($nbchamps==1)
|
|
{
|
|
$query=$query."SET ".$champs."='".$valeurs."' ";
|
|
}
|
|
else
|
|
{
|
|
$query=$query."SET ".$champs[0]."='".$valeurs[0]."'";
|
|
for($i=1;$i<$nbchamps;$i++)
|
|
{
|
|
$query=$query.", ".$champs[$i]."='".$valeurs[$i]."'";
|
|
}
|
|
}
|
|
}
|
|
if(!empty($conditions))
|
|
{
|
|
$query=$query." WHERE ".$conditions;
|
|
}
|
|
if($this->id_connect != false)
|
|
{
|
|
$res=@mysql_query($query, $this->id_connect);
|
|
if (empty($res))
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return @mysql_affected_rows($this->id_connect);
|
|
}
|
|
}
|
|
}
|
|
|
|
public function Query ($query)
|
|
{
|
|
if ($this->id_connect != false)
|
|
{
|
|
$res=mysql_query($query);
|
|
if ($res != false)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private $db;
|
|
public $id_connect;
|
|
public $total_req = 0;
|
|
}
|
|
|
|
?>
|