Files
keliopanel-v1/0.7.1/daemon/system/class.mysql.php
2016-02-21 01:33:05 +01:00

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;
}
?>