Class pour mysql...

Contenu du snippet

Voila, ceci est ma premiere source posté...
je la met ici car je n'en ai pas vu de similaire.

A note que j'ai cree cette class a partir d'une class trouvé sur le net.

Cette class sert a se connecter sur la base mysql et executer des requetes...

Source / Exemple :


//fonctionnement de la classe : 
include('class_sql.php');
//declaration de l'objet : 
$sql=new mysql();
//connection a la base : 
$sql->connection();
executer une requete de select : 
$sql->query("SELECT * FROM base WHERE date<10");
//avoir les resultats : 
while($sql->fetch_array()){
echo "Nom : ".$sql->row('nom')."<br>Prenom : ".$sql->$row('prenom');
}

//<---------------CODE DE LA CLASS------------->\\

<?
/*
Class MySql : Permet de gerer mysql simplement
Auteur : Aveline Guillaume
Date de creation : 03/08/2003
Mise à jour : ##/##/##

  • /
class mysql { var $db=""; var $debug=""; var $err=""; var $req=""; var $res=""; var $row=""; var $field=""; var $nb_qry=""; var $nb_field=""; var $nb_res=""; function connection() { $serv = getenv("SERVER_NAME"); if($serv == "localhost"){ //infos en local $host = "localhost"; $user = "root"; $pass = ""; $bdd = "fanz"; } else{ //infos sur le net $host =""; $bdd =""; $user=""; $pass =""; } $this->db = @mysql_connect($host, $user, $pass) or die("Erreur de connection.<br>Veuillez contacter le webmater au plus vite."); mysql_select_db($bdd) or die("Impossible d'ouvrir la base de donnee $db"); $this->nb_qry=0; } function disconnect(){ Mysql_close(); $this->db=""; if($this->debug) echo "Deconnection de la base MySql."; } function debugon() { $this->debug = 1 ; //echo "Debug Actif<br>"; } function debugoff() { $this->debug = 0 ; //echo "Debug Desactif<br>"; } function query($todo) { if($this->debug) echo "Requete : $todo <br>"; //mysql_free_result ($this->req); $this->req = @mysql_query($todo); if(!$this->req) { $this->err = "Erreur sur la requete : $todo <br>Réponse : ".mysql_error()."<br>"; if($this->debug) echo $err; } //elseif(!($nb_res==mysql_num_rows($this->req))) return 0; //elseif($this->debug) echo "Nombre de réponse : $nb_res<br>"; $this->nb_qry++; } function fetch_array() { if(!$this->req) return 0; $this->row=mysql_fetch_array($this->req); return $this->row; } function row($f) { return($this->row[$f]); } function getnbqry(){ return $this->nb_qry; } function liste_champs() { if(!$this->req) return 0; $nb_field = mysql_num_fields($this->req); if(!$nb_field) $this->err = "Erreur lors du comptage de champ ".mysql_error()."<br>"; if($this->debug) { if(!$nb_field) echo $this->err; else echo "Nombre de champs : $nb_field <br>"; } for($i=0;$i<$nb_field;$i++) $fields[] = @mysql_field_name($this->req,$i); return $fields; } function createtable(){ $nbarg=func_num_args(); $nomtable=func_get_arg(0); $nbchamps=0; $temp1=($func_sql_nbarg-1); for($i=1;$i<$temp1;$i+=5){ $temp[$nbchamps]=func_get_arg($i)." ".func_get_arg($i+1)." ".func_get_arg($i+2)." ".func_get_arg($i+3)." ".func_get_arg($i+4); $nbchamps++; } $command="CREATE TABLE $nomtable ("; $temp2=($nbchamps-1); for($i=0;$i<$temp2;$i++) { $command.=$temp[$i].","; } $command.=$temp[$temp2]; $command.=",".func_get_arg($temp1).");"; $this->query($command); } function altertable() { $nbarg=func_num_args(); $action=func_get_arg(0); $nomtable=func_get_arg(1); if($action==1)//ADD { $temp=func_get_arg(2)." ".func_get_arg(3)." ".func_get_arg(4)." ".func_get_arg(5)." ".func_get_arg(6); $place=func_get_arg(7);//FIRST =>debut 'RIEN' =>FIN AFTER X=>apres X $command="ALTER TABLE ".$nomtable." ADD ".$temp." ".$place; } elseif($action==2)//DROP { $temp=func_get_arg(2); $command="ALTER TABLE ".$nomtable." DROP ".$temp; } elseif($action==3)//CHANGE { $temp=func_get_arg(3)." ".func_get_arg(4)." ".func_get_arg(5)." ".func_get_arg(6)." ".func_get_arg(7); $old=func_get_arg(2); $command="ALTER TABLE ".$nomtable." CHANGE ".$old." ".$temp; } elseif($action==4)//ADD UNIQUE { $key=func_get_arg(2); $command="ALTER TABLE ".$nomtable." ADD UNIQUE (".$key.")"; } $this->query($command); } function insertinto(){ $command="INSERT INTO ".func_get_arg(0)." VALUES("; $temp=(func_num_args()-1); for($i=1;$i<$temp;$i++) { $command.="'".func_get_arg($i)."',"; } $command.="'".func_get_arg($temp)."')"; $this->query($command); } function deletefrom(){ $command="DELETE FROM ".func_get_arg(0)." WHERE ".func_get_arg(1)."=".func_get_arg(2)." LIMIT 1"; $this->query($command); } function update(){ $command="UPDATE ".func_get_arg(0)." SET "; $temp=(func_num_args()-3); for($i=1;$i<$temp;$i+=2){ $fcommand.=func_get_arg($i)."='".func_get_arg($i+1)."',"; } $command.=func_get_arg($temp-1)."='".func_get_arg($temp)."' "; $command.=" WHERE ".func_get_arg($temp+1)."=".func_get_arg($temp+2)." LIMIT 1;"; $this->query($command); } function compile_db_string($data) { $field_names = ""; $field_values = ""; foreach ($data as $k => $v) { $v = preg_replace( "/'/", "\\'", $v ); $field_names .= "`$k`,"; $field_values .= "'$v',"; } $field_names = preg_replace( "/,$/" , "" , $field_names ); $field_values = preg_replace( "/,$/" , "" , $field_values ); return array( 'FIELD_NAMES' => $field_names, 'FIELD_VALUES' => $field_values, ); } function insertinto2($table,$datas){ // INSERT INTO `fanz_sessions` (`id`, `idsess`, `idmembre`, `datein`, `datelimit`, `ip`) VALUES ('', 'hjk', '0', '1', '2', 'bvhv'); $command="INSERT INTO `".$table."` (".$datas['FIELD_NAMES'].") VALUES (".$datas['FIELD_VALUES'].")"; $this->query($command); } } ?>

Conclusion :


pour les autres fonctions, je ferais une mise a jour avec un zip contenant le fichier d'aide...
je ne l'ai pas sous la amoin, c'est pour ca...

la fonction createtable est complex...

les fonction insertinto2() et compile_db_string ne sont pas de moi, je les ai recuperé dans un forum que je citerais kan je retrouverais le nom...

la fonction debugon() pour gerer les affichage des requete ne sont pas de moi non plus....

tout le reste, les fonction insertinto(), deletefrom(), update, altertable et createtable sont de moi.....

voila, ++ les gens pour un update avec un zip et d'autre commentaires

A voir également

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.