Vous n'êtes pas identifié(e).
[25 janvier 2021] - Publication de Wanewsletter 3.1.0
Pages : 1
Salut, j'ai créé une class SQL qui est sous license GPL (GNU) j'aimerais votre avis:
<?php
/***************************************************************************
* sql_pusher.class.php
* ------------------------
* commencé : 19/03/2006
* copyright : GoldenEye
* mail : goldeneye@jeuxvideopop.info
* site web de l'auteur : http://www.jeuxvideopop.info
* version du programme : 2 beta 2
* dernière modification : 22 mars 2006
*
*
***************************************************************************/
/***************************************************************************
*
* Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
* sous les termes de la GNU (License au grand public) publié par
* la Free Software Foudation (FSF);
*
*
****************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*
***************************************************************************/
//Déclaration de la class SQL
class sql
{
//Déclaration de la variable $nbr_requete et mise à zéro de cette variable
var $nbr_requete = 0;
//Déclaration de la fonction connect (Pour se connecter à MySQL)
function connect($host,$username,$password,$database)
{
//Connexion à mysql
$this->connect = @mysql_connect($host,$username,$password);
//Si on est connecté (si la valeur de $this->connect est différente de FALSE)
if ($this->connect !== FALSE)
{
//On selectionne la Base de donnée souhaitée
$this->database = @mysql_select_db($database,$this->connect);
//Si la valeur de $this->database est identique à FALSE (impossible de selectionner la BDD)
if ($this->database === FALSE)
{
//Deconnection de MySQL (puisque la base de donnée n'a pas été selectionnée)
@mysql_close($this->connect);
//Et on prévient que la variable $this->connect va valoir FALSE
$this->connect = FALSE;
//On tue la phrase d'erreur et on la remplace
die('Impossible de selectionner la Base de Donnée.');
}
//$this->connect va retourner TRUE
return TRUE;
}
//Si la connexion ne s'est pas effectuée
die('Impossible de se connecter à la Base de donnée.');
}
//Déclaration de la fonction close (Pour fermer MySQL)
function close()
{
//Si on est connecté à MySQL
if ($this->connect !== FALSE)
{
//Deconnection à MySQL
$this->connect = @mysql_close($this->connect);
return $this->connect;
}
//Si $this-connect vaut TRUE
else ($this->connect === FALSE)
{
//On prévient qu'on est pas connecté à MySQL
die('Veuillez supprimer la fonction close du fichier', __FILE__,' ligne', __LINE__ );
}
//$this->connect retourne à présent FALSE (donc non connecté)
return FALSE;
}
//Déclaration de la fonction change_db (pour changer de base de donnée)
function change_db($database)
{
//Si on est connecté à MySQL
if ($this->connect !== FALSE)
{
//On choisi la base de donnée
$this->database = @mysql_select_db($database,$this->connect);
//Si le changement de base de donnée echoue
if ($this->database === FALSE)
{
//On ferme la connexion
@mysql_close($this->connect);
//On déclare que $this->connect vaut FALSE
$this->connect = FALSE;
//Et on affiche l'erreur
die('Impossible de changer de Base de donnée.');
}
//Si le changement a réussi, on retourne $this->database comme TRUE
return TRUE;
}
//Sinon on retourne FALSE
return FALSE;
}
//On déclare la fonction query
function query($query)
{
//On prévient un changement de variable
$this->query = $query;
//Si $this->query et vide et que $this->connect ne retourne pas FALSE
if (!empty($this->query) AND $this->connect !== FALSE)
{
//On execute la requête
$this->result = @mysql_query($this->query,$this->connect);
//Et on ajoute une requête en plus à chaque requête effectués
$this->nbr_requete++;
return TRUE;
}
//Sinon
else
{
//On affiche une erreur de reqêuete et de connection
die('La requête SQL est vide ou vous n\'êtes pas connecté.');
//On retourne false
return FALSE;
}
}
//On déclare la fonction fetch_array
function fetch_array($this->result)
{
//Si on est connecté et qu'il y a une requête
if ($this->connect !== FALSE AND $this->query !== FALSE)
{
//On fait le mysql_fetch_array
$this->row = @mysql_fetch_array($this->result);
//Et on retourne TRUE
return TRUE;
}
//Sinon
else
{
//On affiche une erreur
die('Vous n\'êtes pas connecté et/ou il n\'y a pas de requête.');
//On retourne FALSE
return FALSE;
}
}
//On déclare la fonction query_fetch_array
function query_fetch_array($query)
{
//On prévient un changement de variable
$this->query = $query;
//Si $this->query et vide et que $this->connect ne retourne pas FALSE
if (!empty($this->query) AND $this->connect !== FALSE)
{
//On execute la requête
$this->result = @mysql_query($this->query,$this->connect);
//On fait le mysql_fetch_array
$this->row = @mysql_fetch_array($this->result);
//Et on ajoute une requête en plus à chaque requête effectués
$this->nbr_requete++;
return TRUE;
}
//Sinon
else
{
//On affiche une erreur de reqêuete et de connection
die('La requête SQL est vide et/ou vous n\'êtes pas connecté.');
//On retourne false
return FALSE;
}
}
}
?>
Hors ligne
La ligne 87 n'est pas correcte:
die('Veuillez supprimer la fonction close du fichier', __FILE__,' ligne', __LINE__ );
die() n'accepte qu'un argument.
La déclaration de la fonction fetch_array() n'est pas bonne
function fetch_array($this->result)
Soit tu passes $result en argument, soit tu ne passes rien et tu utilises $this->result. Ça m'étonne que php ne te renvoie pas d'erreur pour cette ligne.
PHP et MySQL, un duo gagnant !
Hors ligne
je comprend pas très bien et merci pour le signalement des erreurs (je suis seulement en beta 2)
Hors ligne
Voila j'ai fait les modifications:
<?php
/***************************************************************************
* sql_pusher.class.php
* ------------------------
* commencé : 19/03/2006
* copyright : GoldenEye
* mail : goldeneye@jeuxvideopop.info
* site web de l'auteur : http://www.jeuxvideopop.info
* version du programme : 2 beta 5
* dernière modification : 22 mars 2006
* dernier debogage beta : 5
*
*
***************************************************************************/
/***************************************************************************
*
* Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
* sous les termes de la GNU (License au grand public) publié par
* la Free Software Foudation (FSF);
*
*
****************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*
***************************************************************************/
//Déclaration de la class SQL
class sql
{
//Déclaration de la variable $nbr_requete et mise à zéro de cette variable
var $nbr_requete = 0;
//Déclaration de la fonction connect (Pour se connecter à MySQL)
function connect($host,$username,$password,$database)
{
//Connexion à mysql
$this->connect = @mysql_connect($host,$username,$password);
//Si on est connecté (si la valeur de $this->connect est différente de FALSE)
if ($this->connect !== FALSE)
{
//On selectionne la Base de donnée souhaitée
$this->database = @mysql_select_db($database,$this->connect);
//Si la valeur de $this->database est identique à FALSE (impossible de selectionner la BDD)
if ($this->database === FALSE)
{
//Deconnection de MySQL (puisque la base de donnée n'a pas été selectionnée)
@mysql_close($this->connect);
//Et on prévient que la variable $this->connect va valoir FALSE
$this->connect = FALSE;
//On tue la phrase d'erreur et on la remplace
die('Impossible de selectionner la Base de Donnée.');
}
//$this->connect va retourner TRUE
return TRUE;
}
//Si la connexion ne s'est pas effectuée
die('Impossible de se connecter à la Base de donnée.');
}
//Déclaration de la fonction close (Pour fermer MySQL)
function close()
{
//Si on est connecté à MySQL
if ($this->connect !== FALSE)
{
//Deconnection à MySQL
$this->connect = @mysql_close($this->connect);
return $this->connect;
}
//$this->connect retourne à présent FALSE (donc non connecté)
return FALSE;
}
//Déclaration de la fonction change_db (pour changer de base de donnée)
function change_db($database)
{
//Si on est connecté à MySQL
if ($this->connect !== FALSE)
{
//On choisi la base de donnée
$this->database = @mysql_select_db($database,$this->connect);
//Si le changement de base de donnée echoue
if ($this->database === FALSE)
{
//On ferme la connexion
@mysql_close($this->connect);
//On déclare que $this->connect vaut FALSE
$this->connect = FALSE;
//Et on affiche l'erreur
die('Impossible de changer de Base de donnée.');
}
//Si le changement a réussi, on retourne $this->database comme TRUE
return TRUE;
}
//Sinon on retourne FALSE
return FALSE;
}
//On déclare la fonction query
function query($query)
{
//On prévient un changement de variable
$this->query = $query;
//Si $this->query et vide et que $this->connect ne retourne pas FALSE
if (!empty($this->query) AND $this->connect !== FALSE)
{
//On execute la requête
$this->result = @mysql_query($this->query,$this->connect);
//Et on ajoute une requête en plus à chaque requête effectués
$this->nbr_requete++;
return TRUE;
}
//Sinon
else
{
//On affiche une erreur de reqêuete et de connection
die('La requête SQL est vide ou vous n\'êtes pas connecté.');
//On retourne false
return FALSE;
}
}
//On déclare la fonction fetch_array
function fetch_array($result)
{
$result = $this->result;
//Si on est connecté et qu'il y a une requête
if ($this->connect !== FALSE AND $this->query !== FALSE)
{
//On fait le mysql_fetch_array
$this->row = @mysql_fetch_array($this->result);
//Et on retourne TRUE
return TRUE;
}
//Sinon
else
{
//On affiche une erreur
die('Vous n\'êtes pas connecté et/ou il n\'y a pas de requête.');
//On retourne FALSE
return FALSE;
}
}
//On déclare la fonction query_fetch_array
function query_fetch_array($query)
{
//On prévient un changement de variable
$this->query = $query;
//Si $this->query et vide et que $this->connect ne retourne pas FALSE
if (!empty($this->query) AND $this->connect !== FALSE)
{
//On execute la requête
$this->result = @mysql_query($this->query,$this->connect);
//On fait le mysql_fetch_array
$this->row = @mysql_fetch_array($this->result);
//Et on ajoute une requête en plus à chaque requête effectués
$this->nbr_requete++;
return TRUE;
}
//Sinon
else
{
//On affiche une erreur de reqêuete et de connection
die('La requête SQL est vide et/ou vous n\'êtes pas connecté.');
//On retourne false
return FALSE;
}
}
}
?>
malheuresement la fonction query_fetch_array a l'ai de boguer
Hors ligne
Voila alors j'ai fais une grosse modification de ma class SQL qui en est déjà à ça version 3.0.0 comprenant 395 ligne. Elle est sous license GNU GPL (cf: www.gnu.org)
Elle est très complète, avec vous pouvez faire une SGBD facilement, la voici:
<?php
/***************************************************************************
* sql_pusher.class.php
*
* commencé : 19/03/2006
* copyright : GoldenEye
* mail : goldeneye@jeuxvideopop.info
* site web de l'auteur : http://www.jeuxvideopop.info
* version du programme : 3.0.0
* dernière modification : 25 avril 2006
*
*
***************************************************************************/
/***************************************************************************
*
* Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
* sous les termes de la GNU (License au grand public) publié par
* la Free Software Foudation (FSF);
*
*
****************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*
***************************************************************************/
//Déclaration de la class SQL
class sql
{
//Déclaration de la variable $nbr_requete et mise à zéro de cette variable
var $nbr_requete = 0;
//Déclaration de la fonction connect (Pour se connecter à MySQL)
function sql($host,$username,$password,$database)
{
//Connexion à mysql
$this->connect = @mysql_connect($host,$username,$password);
//Si on est connecté (si la valeur de $this->connect est différente de FALSE)
if ($this->connect !== FALSE)
{
//On selectionne la Base de donnée souhaitée
$this->database = @mysql_select_db($database,$this->connect);
//Si la valeur de $this->database est identique à FALSE (impossible de selectionner la BDD)
if ($this->database === FALSE)
{
//Deconnection de MySQL (puisque la base de donnée n'a pas été selectionnée)
@mysql_close($this->connect);
//Et on prévient que la variable $this->connect va valoir FALSE
$this->connect = FALSE;
//On tue la phrase d'erreur et on la remplace
die('Impossible de selectionner la Base de Donnée.');
}
//$this->connect va retourner TRUE
return TRUE;
}
//Si la connexion ne s'est pas effectuée
die('Impossible de se connecter à la Base de donnée.');
}
function create_database($db_name, $connect = $this->connect)
{
//On créé $this->db_name
$this->db_name = $db_name;
// On créé $this->connect
$this->connect = $connect;
// Si $this->db_name n'est pas vide et que nous sommes connecté
if(!empty($this->db_name) AND $this->connect !== FALSE)
{
// On lance la création de la base de donnée
$this->create = mysql_create_db($this->db_name, $this->connect);
// On rajoute +1 aux nombres de requêtes
$this->nbr_requete++;
// On renvoi la requête
return $this->create;
}
// Ca n'a pas fonctionné on envoi une erreur
die('Impossible de créer une nouvelle base de donnée.');
}
function create_database_query($db_name,$connect = $this->connect)
{
// On créé $this->db_name
$this->db_name = $db_name;
// On créé $this->connect
$this->connect = $connect;
// Si $this->db_name n'est pas vide et que nous sommes connecté
if(!empty($this->db_name) AND $this->connect !== FALSE)
{
// On lance la requête
$this->result = @mysql_query('CREATE DATABASE '.$this->db_name,$this->connect);
// On ajoute + 1 aux nombre de requêtes
$this->nbr_requete++;
//$this->error = Si $this->result vaut FALSE $this->eror vaut TRUE sinon $this->error vaut FALSE
$this->error = ($this->result === FALSE) ? TRUE : FALSE;
// Si il y a une erreur on créé le message d'ereur MySQL
$this->result = ($this->error) ? $this->db_name."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
// Il y a bien erreur on affiche l'erreur
if ($this->error) die($this->result);
// On envoie le resultat de la requête.
return $this->result;
}
//Sinon $this->error vaut TRUE
$this->error = TRUE;
// On affiche l'ereur
die('Impossible de créer une nouvelle base de donnée.');
}
function ping($connect = $this->connect)
{
// On prévient que this->connect est $connect
$this->connect = $connect;
// On effectue un mysql_ping
$this->ping = @mysql_ping($this->connect);
// Si $this->ping à été activé et fonctionne
if ($this->ping !== FALSE)
{
// On return TRUE
return TRUE;
}
else
{
// On affiche un message d'erreur
die('La reconnection a échouée.');
// On return FALSE
return FALSE;
}
}
function encoding($connect = $this->connect)
{
//On créé $this->connect
$this->connect = $connect;
// On effectue un mysql_client_encoding
$this->encoding = @mysql_client_encoding($this->connect);
// Si $this-encoding à été activé et fonctionne
if ($this->encoding !== FALSE)
{
// On return TRUE
return TRUE;
}
else
{
// On affiche un message d'erreur
die('Impossible de retourner le jeu de charactère.');
// On return FALSE
return FALSE;
}
}
//Déclaration de la fonction close (Pour fermer MySQL)
function close()
{
//Si on est connecté à MySQL
if ($this->connect !== FALSE)
{
//Deconnection à MySQL
$this->connect = @mysql_close($this->connect);
return $this->connect;
}
//$this->connect retourne à présent FALSE (donc non connecté)
return FALSE;
}
//Déclaration de la fonction change_db (pour changer de base de donnée)
function change_db($database)
{
//Si on est connecté à MySQL
if ($this->connect !== FALSE)
{
//On choisi la base de donnée
$this->database = @mysql_select_db($database,$this->connect);
//Si le changement de base de donnée echoue
if ($this->database === FALSE)
{
//On ferme la connexion
@mysql_close($this->connect);
//On déclare que $this->connect vaut FALSE
$this->connect = FALSE;
//Et on affiche l'erreur
die('Impossible de changer de Base de donnée.');
}
//Si le changement a réussi, on retourne $this->database comme TRUE
return TRUE;
}
//Sinon on retourne FALSE
return FALSE;
}
function listable($db_name)
{
// On créé la variable de la class
$this->db_name = $db_name;
// Si nous sommes connecté
if($this->connect !== FALSE)
{
// On lance le listage
$this->listable = mysql_query('SHOW TABLES FROM '.$db_name);
// Si $this->listable est différent de FALSE
if($this->listable !== FALSE)
{
//On renvoi $this->listable
return $this->listable;
}
else
{
//On affiche un message d'erreur
die('Impossible de lister les tables de la base de donnée: '.$db_name);
}
}
// On affiche un mesage d'erreur
die('Vous n\'êtes pas connecté');
}
//On déclare la fonction query
function query($query)
{
// On créé $this->query
$this->query = $query;
// Si la requête n'est pas vide et que nous sommes connecté
if(!empty($this->query) AND $this->connect !== FALSE)
{
// On lance la requête
$this->result = @mysql_query($this->query,$this->connect);
// On ajoute + 1 aux nombre de requêtes
$this->nbr_requete++;
//$this->error = Si $this->result vaut FALSE $this->eror vaut TRUE sinon $this->error vaut FALSE
$this->error = ($this->result === FALSE) ? TRUE : FALSE;
// Si il y a une erreur on créé le message d'ereur MySQL
$this->result = ($this->error) ? $this->query."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
// Il y a bien erreur on affiche l'erreur
if ($this->error) die($this->result);
// On envoie le resultat de la requête.
return $this->result;
}
//Sinon $this->error vaut TRUE
$this->error = TRUE;
// On affiche l'ereur
die('La requête SQL et vide et/ou vous n\'êtes pas connecté');
}
function numfields($result)
{
// On créé $this->result
$this->result = $result;
// Si on est connecté
if($this->connect !== FALSE)
{
// On fait un mysql_field_name
$this->row = @mysql_num_fields($this->result);
return $this->row;
}
}
function fieldtype($result, $field_offset)
{
// On créé $this->result & $this->field_offset
$this->result = $result;
$this->field_offset = $field_offset;
// Si on est connecté
if($this->connect !== FALSE)
{
// On fait un mysql_field_name
$this->row = @mysql_field_type($this->result, $this->field_offset);
return $this->row;
}
}
function fieldname($result, $field_offset)
{
// On créé $this->result & $this->field_offset
$this->result = $result;
$this->field_offset = $field_offset;
// Si on est connecté
if($this->connect !== FALSE)
{
// On fait un mysql_field_name
$this->row = @mysql_field_name($this->result, $this->field_offset);
return $this->row;
}
}
function fieldlen($result, $field_offset = 0)
{
// On créé $this->result & $this->field_offset
$this->result = $result;
$this->field_offset = $field_offset;
// Si on est connecté
if($this->connect !== FALSE)
{
// On fait un mysql_field_len
$this->row = @mysql_field_len($this->result, $this->field_offset);
return $this->row;
}
}
function fiedflags($result, $field_offset = 0)
{
// On créé $this->result & $this->field_offset
$this->result = $result;
$this->field_offset = $field_offset;
// Si on est connecté
if($this->connect !== FALSE)
{
// On fait un mysql_field_flags
$this->row = @mysql_field_flags($this->result, $this->field_offset);
return $this->row;
}
}
function fetchrow($result)
{
//On créé $this->resukt
$this->result = $result;
// Si on est connecté
if($this->connect !== FALSE)
{
//On fait un mysql_fetch_row
$this->row = @mysql_fetch_row($this->result);
return $this->row;
}
}
function fetchobject($result)
{
//On créé $this->resukt
$this->result = $result;
// Si on est connecté
if($this->connect !== FALSE)
{
//On fait un mysql_fetch_object
$this->row = @mysql_fetch_object($this->result);
return $this->row;
}
}
function result($result)
{
//On créé $this->result
$this->result = $result;
//Si on est connecté
if($this->connect !== FALSE)
{
//On fait un mysql_fetch_array
$this->row = @mysql_free_result($this->result);
return $this->row;
}
}
function numrows($result)
{
//On créé $this->result
$this->result = $result;
//Si on est connecté
if($this->connect !== FALSE)
{
//On fait un mysql_fetch_array
$this->row = @mysql_num_row($this->result);
return $this->row;
}
}
function assoc($result)
{
//On créé $this->result
$this->result = $result;
//Si on est connecté
if($this->connect !== FALSE)
{
//On fait un mysql_fetch_array
$this->row = @mysql_fetch_assoc($this->result);
return $this->row;
}
}
function affected($result)
{
//On créé $this->result
$this->result = $result;
//Si on est connecté
if($this->connect !== FALSE)
{
//On fait un mysql_fetch_array
$this->row = @mysql_affected_rows($this->result);
return $this->row;
}
}
function fetcharray($result)
{
//On créé $this->result
$this->result = $result;
//Si on est connecté
if($this->connect !== FALSE)
{
//On fait un mysql_fetch_array
$this->row = @mysql_fetch_array($this->result);
return $this->row;
}
}
}
?>
Voici à quoi servent les fonctions:
sql() : prend 4 paramètres: l'host, le pseudo, le mot de passe et le nom de la base de donnée ( se connecte)
create_database(): prend 2 paramètre dans le 2ème est facultatif: le nom de la base de donnée et la connexion en cours (cette fonction n'est pas conseillé pour créé une base de donnée) (créé une nouvelle base de donnée)
create_database_query(): Pareil que tout à l'heure sauf que cette fonction est plus conseillé
ping(): Prend un paramètre optionnel : la connexion en cours (se reconnecte à mysql (cf: fr2.php.net/mysql_ping))
encoding(): Affiche le jeu de charactère de MySQL qui prend le même paramètre optionnel que ping()
close(): Ferme la connexion en cours
change_db(): prend un paramètre: le nom de la base de donée à prendre. (Fait un changement de Base de donnée)
listable(): prend un paramètre: le nom de la base de donnée (Affiche toute les tables d'une base de donnée)
query(): prend un paramètre: la requête a effectuer (fait un mysql_query())
numfields(): Retourne le nombre de champs ans une table. Prend le paramètre de la requête à prendre pour ce retorunement
fieldtype(): Prend 2 paramètres: la requête à prendre et le nombre de type à afficher ( même nombre que de champs ) (affiche le type de champs (int, text, begint, ...)
fieldname(): Prend 2 paramètres: Les même que au-dessus (Affiche le nom de champs)
fieldlen(): Prend les 2 mêmes paramètres que au-dessus (Affiche la taille maximale autorisé du champs)
fieldflags(): Prend les 2 même paramètre (Affiche si le champ est en NULL, Not Null, Primary Key, ....)
fetchrow(): Fonctionne pareil que mysql_fetch_row()
fetchobject(): Je ne sais pas comment vous expliquer alors allez sur fr2.php.net/mysql_fetch_object
result(): Fonctionne pareil que mysql_free_result()
numrows(): Fonctionne pareil que mysql_num_rows()
assoc(): Fonctionne pareil que mysql_fetch_assoc()
affected(): Fonctionne pareil que mysql_affected_rows()
fetcharray(): Fonctionne pareil que mysql_fetch_array()
Hors ligne
Enorme mise à jour, ma class fonctionne. Avec je suis en train de créer MySQL-Soft-Admin qui est un PMA mais en plus simple.
Je vous rapelle que la class est sous license GNU GPL (merci à Bobe pour l'explication du comment faire) et elle fait 434 lignes (avant 395 avec la moitié en commentaire la j'ai enlevé les commentaires)
La voici:
<?php
/****************************************************************************
|
| # Nom: sql_pusher.class.php
| # Auteur : Groupe Active Board
| # Commencé : Le 19 Mars 2006
| # Description : Cette classe permet de gérer MySQL simplement
| # Version: 3.0.0
|
****************************************************************************/
/***************************************************************************
*
* Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
* sous les termes de la GNU (License au grand public) publié par
* la Free Software Foudation (FSF);
*
*
****************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*
***************************************************************************/
//Déclaration de la class SQL
class sql
{
#
#-----------[ DECLARATION VARIABLES ]--------------#
#
var $sql = '';
var $nbr_requete = 0;
var $connect;
#
#-----------[ DECLARATION FONCTIONS ]------------#
#
function sql(&$sql)
{
$this->sql =& $sql;
}
function connect($host,$username,$password)
{
$this->connect = @mysql_connect($host,$username,$password);
if($this->connect === FALSE)
{
die('Impossible de se connecter à MySQL.');
}
return TRUE;
}
function connectdb($host,$username,$password,$database)
{
$this->connect = @mysql_connect($host,$username,$password);
if($this->connect === FALSE)
{
die('Impossible de se connecter à MySQL.');
}
else
{
if($this->connect !== FALSE)
{
$this->db = @mysql_select_db($database, $this->connect);
if($this->db === FALSE)
{
die('Impossible de selectionner la base de donnée');
}
}
else
{
die('Vous n\'êtes pas connecté à MySQL.');
}
return TRUE;
}
return TRUE;
}
function db($database)
{
if($this->connect !== FALSE)
{
$this->db = @mysql_select_db($database, $this->connect);
if($this->db === FALSE)
{
die('Impossible de selectionner la base de donnée');
}
}
else
{
die('Vous n\'êtes pas connecté à MySQL.');
}
return TRUE;
}
function listdb()
{
if($this->connect !== FALSE)
{
$this->list_db = mysql_list_dbs();
$this->nbr_requete++;
return $this->list_db;
}
die('Impossible de lister les bases de données.');
}
function create_database($db_name)
{
$this->db_name = $db_name;
if(!empty($this->db_name) AND $this->connect !== FALSE)
{
$this->create = mysql_create_db($this->db_name);
$this->nbr_requete++;
return $this->create;
}
die('Impossible de créer une nouvelle base de donnée.');
}
function dropdb($db_name)
{
$this->db_name = $db_name;
if(!empty($this->db_name) AND $this->connect !== FALSE)
{
$this->result = @mysql_query('DROP ' DATABASE '.$this->db_name);
$this->nbr_requete++;
return $this->result;
}
die('Impossible de supprimer la base de données.');
}
function create_database_query($db_name)
{
$this->db_name = $db_name;
if(!empty($this->db_name) AND $this->connect !== FALSE)
{
$this->result = @mysql_query('CREATE DATABASE '.$this->db_name);
$this->nbr_requete++;
$this->error = ($this->result === FALSE) ? TRUE : FALSE;
$this->result = ($this->error) ? $this->db_name."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
if ($this->error) die($this->result);
return $this->result;
}
$this->error = TRUE;
die('Impossible de créer une nouvelle base de donnée.');
}
function ping($connect)
{
$this->connect = $connect;
$this->ping = @mysql_ping($this->connect);
if ($this->ping !== FALSE)
{
return TRUE;
}
else
{
die('La reconnexion a échouée.');
return FALSE;
}
}
function encoding($connect)
{
$this->connect = $connect;
$this->encoding = @mysql_client_encoding($this->connect);
if ($this->encoding !== FALSE)
{
return TRUE;
}
else
{
die('Impossible de retourner le jeu de charactère.');
return FALSE;
}
}
function close()
{
if ($this->connect !== FALSE)
{
$this->connect = @mysql_close($this->connect);
return $this->connect;
}
return FALSE;
}
function change_db($database)
{
if ($this->connect !== FALSE)
{
$this->database = @mysql_select_db($database,$this->connect);
if ($this->database === FALSE)
{
@mysql_close($this->connect);
$this->connect = FALSE;
die('Impossible de changer de Base de donnée.');
}
return TRUE;
}
return FALSE;
}
function listable($db_name)
{
$this->db_name = $db_name;
if($this->connect !== FALSE)
{
$this->listable = mysql_list_tables($db_name);
if($this->listable !== FALSE)
{
return $this->listable;
}
else
{
die('Impossible de lister les tables de la base de donnée');
}
}
die('Vous n\'êtes pas connecté');
}
function query($query)
{
$this->query = $query;
if(!empty($this->query) AND $this->connect !== FALSE)
{
$this->result = @mysql_query($this->query,$this->connect);
$this->nbr_requete++;
$this->error = ($this->result === FALSE) ? TRUE : FALSE;
$this->result = ($this->error) ? $this->query."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
if ($this->error) die($this->result);
return $this->result;
}
$this->error = TRUE;
die('La requête SQL et vide et/ou vous n\'êtes pas connecté');
}
function numfields($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_num_fields($this->result);
return $this->row;
}
}
function fieldtype($result, $field_offset)
{
$this->result = $result;
$this->field_offset = $field_offset;
if($this->connect !== FALSE)
{
$this->row = @mysql_field_type($this->result, $this->field_offset);
return $this->row;
}
}
function fieldname($result, $field_offset)
{
$this->result = $result;
$this->field_offset = $field_offset;
if($this->connect !== FALSE)
{
$this->row = @mysql_field_name($this->result, $this->field_offset);
return $this->row;
}
}
function fieldlen($result, $field_offset)
{
$this->result = $result;
$this->field_offset = $field_offset;
if($this->connect !== FALSE)
{
$this->row = @mysql_field_len($this->result, $this->field_offset);
return $this->row;
}
}
function fiedflags($result, $field_offset)
{
$this->result = $result;
$this->field_offset = $field_offset;
if($this->connect !== FALSE)
{
$this->row = @mysql_field_flags($this->result, $this->field_offset);
return $this->row;
}
}
function fetchrow($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_fetch_row($this->result);
return $this->row;
}
}
function fetchobject($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_fetch_object($this->result);
return $this->row;
}
}
function result($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_free_result($this->result);
return $this->row;
}
}
function numrows($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_num_rows($this->result);
return $this->row;
}
}
function assoc($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_fetch_assoc($this->result);
return $this->row;
}
}
function affected($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_affected_rows($this->result);
return $this->row;
}
}
function fetcharray($result)
{
$this->result = $result;
if($this->connect !== FALSE)
{
$this->row = @mysql_fetch_array($this->result);
return $this->row;
}
}
}
?>
Je ne sais pas si l'indentation va bien s'effectuer sinon je l'enverrais à ceux qui veulent l'utiliser.
Hors ligne
Pages : 1