Classe MySQL

Cette classe de MySQL a les caractéristiques suivantes:
- Les messages de débogage (peut être activer ou non)
- Traitement des erreurs (peut être activer ou non)....

16 700  vues
Compatibilité du code
PHP 4, PHP 5
A savoir

Ces fonctions sont utilisées dans ce code source:
mysql_affected_rows()    mysql_affected_rows()    mysql_close()    mysql_connect()    mysql_data_seek()    mysql_data_seek()    mysql_errno()    mysql_error()    mysql_fetch_row()    mysql_num_rows()    mysql_query()    mysql_select_db()   

Ces extensions étaient obsolètes en PHP 5.5.0, et ont été supprimées en PHP 7.0.0.
à la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL.
Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations.
Alternatives à cette fonction :
mysqli_connect() et PDO::__construct()

  code classé dans   Classes
  code source classé dans   Classes
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
                    
<?php
/*------------------------------*/
/*
Titre : Classe MySQL

Auteur : freemh
Date édition : 27 Juil 2008
*/
/*------------------------------*/
/*******************************************
USAGE: $My_db=new base_mysql($DB_HostName, $DB_user, $DB_Password, $DB_Name);
$My_db->base_Open();
$My_db->base_Query($my_query);
... your code ...
$My_db->base_Close();

or
$My_db=new base_mysql($DB_HostName, $DB_user, $DB_Password, "");
$My_db->base_Open();
$My_db->base_Select_DB($DB_Name);
$My_db->base_Query($my_query);
... your code ...
$My_db->base_Select_DB($OtherDB_Name);
etc.

********************************************/

class base_mysql {
/* public variables*/


/* private variables */
var $_DB_Name;
var $_DB_User;
var $_DB_Pass;
var $_DB_Host;
var $_DB_Link;
var $_query_ID;
var $_row;
var $_debug;
var $_error_handling;
var $_stop_on_error;

/* private constants*/
var $_terminated;

/********* CLASS CONSTRUCTOR *********/
function base_mysql ($Host_DB="localhost",$User_DB="root",$Pass_DB="",$Name_DB
="")
{
$this->base_Continue();
$this->base_errors();
$this->base_Debug();
$this->_DB_Name = $Name_DB;
$this->_DB_User = $User_DB;
$this->_DB_Pass = $Pass_DB;
$this->_DB_Host = $Host_DB;
$this->_DB_link = 0;
$this->_query_ID = 0;
$this->_terminated = "<br><b>!!!SCRIPT TERMINATED CAUSE ERROR!!!</b>";

}



/********* SETTINGS *********/

function base_Debug($ON_OFF = False)
/*
ON_OFF = False - deactivate debug messages.
ON_OFF = True - activate debug messages.
*/
{
$this->_debug=$ON_OFF;
}

function base_errors($ON_OFF = True)
/*
ON_OFF = False - deactivate error handling.
ON_OFF = True - activate error handling.
*/
{
$this->_error_handling=$ON_OFF;
}

function base_Continue($ON_OFF = True)
/*
ON_OFF = False - stop script after an error.
ON_OFF = True - don't stop script after an error.
*/
{
$this->_stop_on_error = $ON_OFF;
}


/********* CLASS METHODS *********/
function base_Open()
{
if ($this->_debug)
{ echo "<br><i>Hostname: <b>$this->_DB_Host</b><br>";
echo "User: <b>$this->_DB_User</b></i><br>";
}
if (($this->_DB_User=="") || ($this->_DB_Host=="")) {$this->_errors(1);}
else
{
$this->_DB_Link=mysql_connect ($this->_DB_Host, $this->_DB_User, $this->
_DB_Pass);
if (!$this->_DB_Link)
{$this->_errors();}
else
{ if ($this->_debug==True)
{echo
"<br><i>Connection to DB server <b>$this->_DB_Host</b> active.</i><br>";}
if ($this->_DB_Name!="") {$this->base_Select_DB($this->_DB_Name);}
}
}
}


function base_Close()
{
if ($this->_DB_Link)
{
if ($this->_debug==True)
{echo
"<br><i>Closing connection to DB server <b>$this->_DB_Host</b>.</i><br>";}
if (!mysql_close($this->_DB_Link)) $this->_errors();
}
}


function base_Select_DB ($other_DB_Name="")
{
if ($other_DB_Name=="") {$this->_errors(2);}
else
{
if ($this->_DB_Link==0) {$this->_errors(4);}
else
{
if (mysql_select_db($other_DB_Name, $this->_DB_Link))
{$this->_DB_Name = $other_DB_Name;
if ($this->_debug==True)
{echo "<br><i>Database <b>$this->_DB_Name</b> selected.</i><br>";}
}
else {$this->_errors();}
}
}
}


function base_Get_DB()
{ /* returns the current selected DB or empty if none */
return $this->_DB_Name;
}


function base_Query($_sql)
{ /* execute a query */
if (!$this->_DB_Link) {$this->_errors(4);}
else
{
if ($this->_debug==True) {echo"<br><i>Executing query</i>: <b>$_sql<b>.<br>";}
$this->_query_ID = mysql_query ($_sql, $this->_DB_Link);
if (!$this->_query_ID)
{$this->_errors();
unset ($_sql);
return False;}
else
{unset ($_sql);
return True;}
}
}


function base_Num_Rows()
{
if ($this->_query_ID!=0)
{
$Number = mysql_num_rows($this->_query_ID);
if (is_null($Number)){return "NULL";}
else {return $Number;}
}
else
{
$this->_errors(3);
return False;
}
}

function base_Affected_Rows()
{
if ($this->_DB_Link!=0)
{
$Number = mysql_affected_rows($this->_DB_Link);
if (is_null($Number)){return "NULL";}
else {return $Number;}
}
else
{
$this->_errors(4);
return False;
}
}

function base_Data_Seek($row_number=0)
{
if ($this->_query_ID!=0)
{ mysql_data_seek($this->_query_ID,$row_number);}
else
{
$this->_errors(3);
return False;
}
}


function base_Fetch_Row()
{
if ($this->_query_ID!=0)
{ return mysql_fetch_row($this->_query_ID);}
else
{
$this->_errors(3);
return False;
}
}




/********* ERROR HANDLING FUNCTION *********/
function _errors ($int_err=0)
{if (!$this->_error_handling) {return False;}
else
{
switch ($int_err)
{
case 0: /* for My_SQL errors handling */
echo "<br><b>Error number:</b> $mysql_errno()<br>";
echo "<b>Error Text:</b> $mysql_error()<br>";
break;

case 1:
echo "<br><b>Please specify User/Host!</b><br>";
break;

case 2:
echo "<br><b>Database name not set.</b><br>";
break;

case 3:
echo "<br><b>No valid query have been executed.</b><br>";
break;

case 4:
echo "<br><b>No DB connection available.</b><br>";
break;

default:
break;
}
if (!$this->_stop_on_error) die($this->_terminated);
}
}

/********* OTHER FUNCTIONS *********/
function _is_boolean($_to_check)
{/* for future use */
if (is_bool($_to_check))
{return True;}
else
{$this->_errors(4);
return False;}
}

}

?>
<?php
/*------------------------------*/
/*
Titre : Classe MySQL

Auteur : freemh
Date édition : 27 Juil 2008
*/
/*------------------------------*/
/*******************************************
USAGE: $My_db=new base_mysql($DB_HostName, $DB_user, $DB_Password, $DB_Name);
$My_db->base_Open();
$My_db->base_Query($my_query);
... your code ...
$My_db->base_Close();

or
$My_db=new base_mysql($DB_HostName, $DB_user, $DB_Password, "");
$My_db->base_Open();
$My_db->base_Select_DB($DB_Name);
$My_db->base_Query($my_query);
... your code ...
$My_db->base_Select_DB($OtherDB_Name);
etc.

********************************************/

class base_mysql {
/* public variables*/


/* private variables */
var $_DB_Name;
var $_DB_User;
var $_DB_Pass;
var $_DB_Host;
var $_DB_Link;
var $_query_ID;
var $_row;
var $_debug;
var $_error_handling;
var $_stop_on_error;

/* private constants*/
var $_terminated;

/********* CLASS CONSTRUCTOR *********/
function base_mysql ($Host_DB="localhost",$User_DB="root",$Pass_DB="",$Name_DB
="")
{
$this->base_Continue();
$this->base_errors();
$this->base_Debug();
$this->_DB_Name = $Name_DB;
$this->_DB_User = $User_DB;
$this->_DB_Pass = $Pass_DB;
$this->_DB_Host = $Host_DB;
$this->_DB_link = 0;
$this->_query_ID = 0;
$this->_terminated = "<br><b>!!!SCRIPT TERMINATED CAUSE ERROR!!!</b>";

}



/********* SETTINGS *********/

function base_Debug($ON_OFF = False)
/*
ON_OFF = False - deactivate debug messages.
ON_OFF = True - activate debug messages.
*/
{
$this->_debug=$ON_OFF;
}

function base_errors($ON_OFF = True)
/*
ON_OFF = False - deactivate error handling.
ON_OFF = True - activate error handling.
*/
{
$this->_error_handling=$ON_OFF;
}

function base_Continue($ON_OFF = True)
/*
ON_OFF = False - stop script after an error.
ON_OFF = True - don't stop script after an error.
*/
{
$this->_stop_on_error = $ON_OFF;
}


/********* CLASS METHODS *********/
function base_Open()
{
if ($this->_debug)
{ echo "<br><i>Hostname: <b>$this->_DB_Host</b><br>";
echo "User: <b>$this->_DB_User</b></i><br>";
}
if (($this->_DB_User=="") || ($this->_DB_Host=="")) {$this->_errors(1);}
else
{
$this->_DB_Link=mysql_connect ($this->_DB_Host, $this->_DB_User, $this->
_DB_Pass);
if (!$this->_DB_Link)
{$this->_errors();}
else
{ if ($this->_debug==True)
{echo
"<br><i>Connection to DB server <b>$this->_DB_Host</b> active.</i><br>";}
if ($this->_DB_Name!="") {$this->base_Select_DB($this->_DB_Name);}
}
}
}


function base_Close()
{
if ($this->_DB_Link)
{
if ($this->_debug==True)
{echo
"<br><i>Closing connection to DB server <b>$this->_DB_Host</b>.</i><br>";}
if (!mysql_close($this->_DB_Link)) $this->_errors();
}
}


function base_Select_DB ($other_DB_Name="")
{
if ($other_DB_Name=="") {$this->_errors(2);}
else
{
if ($this->_DB_Link==0) {$this->_errors(4);}
else
{
if (mysql_select_db($other_DB_Name, $this->_DB_Link))
{$this->_DB_Name = $other_DB_Name;
if ($this->_debug==True)
{echo "<br><i>Database <b>$this->_DB_Name</b> selected.</i><br>";}
}
else {$this->_errors();}
}
}
}


function base_Get_DB()
{ /* returns the current selected DB or empty if none */
return $this->_DB_Name;
}


function base_Query($_sql)
{ /* execute a query */
if (!$this->_DB_Link) {$this->_errors(4);}
else
{
if ($this->_debug==True) {echo"<br><i>Executing query</i>: <b>$_sql<b>.<br>";}
$this->_query_ID = mysql_query ($_sql, $this->_DB_Link);
if (!$this->_query_ID)
{$this->_errors();
unset ($_sql);
return False;}
else
{unset ($_sql);
return True;}
}
}


function base_Num_Rows()
{
if ($this->_query_ID!=0)
{
$Number = mysql_num_rows($this->_query_ID);
if (is_null($Number)){return "NULL";}
else {return $Number;}
}
else
{
$this->_errors(3);
return False;
}
}

function base_Affected_Rows()
{
if ($this->_DB_Link!=0)
{
$Number = mysql_affected_rows($this->_DB_Link);
if (is_null($Number)){return "NULL";}
else {return $Number;}
}
else
{
$this->_errors(4);
return False;
}
}

function base_Data_Seek($row_number=0)
{
if ($this->_query_ID!=0)
{ mysql_data_seek($this->_query_ID,$row_number);}
else
{
$this->_errors(3);
return False;
}
}


function base_Fetch_Row()
{
if ($this->_query_ID!=0)
{ return mysql_fetch_row($this->_query_ID);}
else
{
$this->_errors(3);
return False;
}
}




/********* ERROR HANDLING FUNCTION *********/
function _errors ($int_err=0)
{if (!$this->_error_handling) {return False;}
else
{
switch ($int_err)
{
case 0: /* for My_SQL errors handling */
echo "<br><b>Error number:</b> $mysql_errno()<br>";
echo "<b>Error Text:</b> $mysql_error()<br>";
break;

case 1:
echo "<br><b>Please specify User/Host!</b><br>";
break;

case 2:
echo "<br><b>Database name not set.</b><br>";
break;

case 3:
echo "<br><b>No valid query have been executed.</b><br>";
break;

case 4:
echo "<br><b>No DB connection available.</b><br>";
break;

default:
break;
}
if (!$this->_stop_on_error) die($this->_terminated);
}
}

/********* OTHER FUNCTIONS *********/
function _is_boolean($_to_check)
{/* for future use */
if (is_bool($_to_check))
{return True;}
else
{$this->_errors(4);
return False;}
}

}

?>

      Fonctions du code - Doc officielle PHP

   php.net  
Description
Versions PHP
    die
Alias de la fonction exit
PHP 4, 5, 7 et 8
    echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
    is_bool
none
PHP 4, 5, 7 et 8
    is_null
Indique si une variable vaut null
PHP 4, 5, 7 et 8
    mysql_affected_rows - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_close Ferme la connexion MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_connect Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_data_seek Déplace le pointeur interne de résultat MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_fetch_row Retourne une ligne de résultat MySQL sous la forme d'un tableau - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_num_rows Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_query Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_select_db Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    unset
Détruit une variable
PHP 4, 5, 7 et 8

[5]

  • avatar

    Invité

    04 Août 2009 à 10:33

    hello cette clase m'interrese, mais je n'arrive pas a faire un select, est qu'i ly aun exemple complet d(utilisation de cette clase, merci d'avance

  • avatar

    Johnstyle

    04 Avril 2009 à 17:10

    Désolé mais mon message à été tronqué.
    //-----------------------------

    Je sais que cette source date un peut mais je tenais à réagir.
    Je trouve dommage que les seules remarques sont sur des "détails" et qui plus est ne sont pas du tout fondée...
    utiliser <? n'est pas un erreur c'est juste déconseillé.
    Quand au balise HTML ... je ne vois pas de doctype donc comment savoir si c'est mieux d'avoir des balises HTML ou XHTML ?? quand à ces baises HTML elles ne sont pas obsolète (cf:W3C), il faut apprendre à ne pas dire des bêtises ;) et HTML a encore un bel avenir devant lui (voir: HTML 5)
    Sinon la source m'a l'air plutôt bien réalisée, bien que sur certains points j'aurais fait différemment notamment le fait de devoir redéclarer la class à chaque utilisation, mais après il s'agit juste d'un confort d'utilisation personnel ^^

  • avatar

    Johnstyle

    04 Avril 2009 à 17:08

    Je sais que cette source date un peut mais je tenais à réagir.
    Je trouve dommage que les seules remarques sont sur des "détails" et qui plus est ne sont pas du tout fondée...

    utiliser

  • avatar

    PhpSources

    20 Août 2008 à 09:41

    <? retourne une erreur sur certain serveur. Il faut utiliser <?php

  • avatar

    KOogar

    28 Juil 2008 à 07:53

    il y a quelques erreurs au niveau code html et balise php

    ce n'est pas <? mais <?php
    ce n'est pas <b> mais <strong>
    ce n'est pas <br> mais <br />

    Je sais que c'est fait uniquement pour l'affichage du debug et des erreurs mais pourquoi ne pas respecter les standarts web ?? faut apprendre a mettre à la poubelle les tag obsolètes qui demain ne seront plus pris en compte par les navigateurs.

    Sinon, apres un simple test, la classe est clean et complète. Jolie travail smile

Minimum 10 mots. Votre commentaire sera visible après validation.


 Autres snippets qui pourraient vous intéresser

Classe DATABASE - PHP Sources

Compatibilité : PHP 8

Classe pour se connecter en PHP 8 avec des améliorations majeures + 10 exemples

Classe PHP permettant de gérer des formulaires

Compatibilité : PHP 7

Classe PHP 5 et PHP 7, de formulaire. Permet de gérer des formulaires. Un exemple complet d'utilisation est fourni dans le script.

* Requêtes exécutées avec Recherche Contextuelle

  Les derniers scripts

Magepattern 1.1

logo Magepattern
Langue langue fr
Date  hier
Taille 6 Mo
Catégorie CMS

PHP 8.5.5

logo PHP
Langue langue us
Date 12 Avril
Taille 32 Mo
Catégorie PHP

PHP 8.4.20

logo PHP
Langue langue us
Date 12 Avril
Taille 30 Mo
Catégorie PHP

Serendipity 2.6.0

logo Serendipity
Langue langue fr
Date 11 Avril
Taille 15 Mo
Catégorie Blogs

Drupal 11.3.6

logo Drupal
Langue langue us
Date 11 Avril
Taille 34 Mo
Catégorie CMS

TYPO3 14.2.0

logo TYPO3
Langue langue fr
Date 10 Avril
Taille 38 Mo
Catégorie CMS
avatar

Freemh

  27 Juil 2008

  SOURCE   Télécharger
16 700 Vues
Compatibilité du code
PHP 4, PHP 5