Class pour mysql...

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 896 fois - Téléchargée 27 fois

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

Ajouter un commentaire

Commentaires

Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
autant pour moi j'avais pas tout lu u_u lol
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
Pour ceux qui ne savent pas utiliser les class (comme moi lol faudrai que je m'y mette quand je trouverai l'interet des class lol) tu devrai mettre comment on utilise une class
Messages postés
38
Date d'inscription
mardi 9 juillet 2002
Statut
Membre
Dernière intervention
23 août 2005

merci de laissez vos commentaire et eventuelement, les bugs trouve...
svp, si vous modifiez cette source, faite m'en part, je le ferais aussi pour mes futures version....

joker

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.