Accueil > > > CLASSE MYSQL PHP5
CLASSE MYSQL PHP5
Information sur la source
Description
Cette classe permet d'utiliser les fonctions mysql de la meme facon que mysqli, c'est a dire, sous forme d'objet. Pour utiliser cette classe, regarder la documentation PHP a propos de mysqli, cette classe fonctionne exactement pareil. Necessite la classe de gestion d'erreur : http://www.phpcs.com/code.aspx?id=28249
Source
- <?php
- require_once('class.myexception.php');
-
- class mysql
- {
- protected $vars;
-
- public function __construct($host = 'localhost', $user = 'root', $password = '', $database = FALSE, $port = 3306)
- {
- $this->vars = array();
-
- $this->vars['config'] = array();
- $this->vars['config']['host'] = $host.':'.$port;
- $this->vars['config']['user'] = $user;
- $this->vars['config']['password'] = $password;
- $this->vars['config']['database'] = NULL;
-
- $this->vars['handle'] = @mysql_connect($host, $user, $password, TRUE);
-
-
- if ($database)
- $this->select_db($database);
-
- $this->vars['properties'] = array();
- $this->vars['properties']['client_info'] = @mysql_get_client_info();
- $buffer = explode('.', $this->vars['properties']['client_info']);
- $this->vars['properties']['client_version'] = $buffer[0]*10000+$buffer[1]*100+$buffer[2];
- $this->vars['properties']['host_info'] = @mysql_get_host_info($this->vars['handle']);
- $this->vars['properties']['protocol_version'] = @mysql_get_proto_info($this->vars['handle']);
- $this->vars['properties']['sqlstate'] = '';
- $this->vars['properties']['thread_id'] = @mysql_thread_id($this->vars['handle']);
- $this->vars['properties']['warning_count'] = 0;
-
- $this->vars['current_result'] = array();
- $this->vars['current_result']['handle'] = NULL;
- $this->vars['current_result']['errno'] = 0;
- $this->vars['current_result']['error'] = '';
-
- $this->vars['results'] = array();
- }
-
- public function __get($var)
- {
- switch ($var)
- {
- case 'affected_rows' : return mysql_affected_rows($this->vars['handle']);
- case 'client_info' : return $this->vars['properties']['client_info'];
- case 'client_version' : return $this->vars['properties']['client_version'];
- case 'errno' : return $this->vars['current_result']['errno'];
- case 'error' : return $this->vars['current_result']['error'];
- case 'field_count' : return mysql_num_fields($this->vars['current_result']['handle']);
- case 'handle' : return $this->vars['handle'];
- case 'host_info' : return $this->vars['properties']['host_info'];
- case 'info' : return mysql_info($this->vars['handle']);
- case 'insert_id' : return mysql_insert_id($this->vars['handle']);
- case 'protocol_version' : return $this->vars['properties']['protocol_version'];
- case 'sqlstate' : return $this->vars['properties']['sqlstate'];//---------
- case 'thread_id' : return $this->vars['properties']['thread_id'];
- case 'warning_count' : return $this->vars['properties']['warning_count'];
- }
- }
-
- public function change_user($user, $password, $database = NULL)
- {
- return mysql_change_user($user, $password, $database, $this->vars['handle']);
- }
-
- public function character_set_name()
- {
- return mysql_client_encoding($this->vars['handle']);
- }
-
- public function client_encoding()
- {
- return mysql_client_encoding($this->vars['handle']);
- }
-
- public function close()
- {
- return mysql_close($this->vars['handle']);
- }
-
- public function escape_sring($string)
- {
- return mysql_real_escape_string($string, $this->vars['handle']);
- }
-
- public function multi_query($query)
- {
- $query = trim($query, '\r\n\t ;');
- $queries = array();
- while (FALSE !== strpos($query, ';'))
- {
- list($buffer, $query) = explode(';', $query, 2);
- if (strlen($query))
- $queries[] = $buffer;
- unset($buffer);
- }
- if (strlen($query))
- $queries[] = $query;
- $this->vars['results'] = array();
- foreach ($queries as $query)
- {
- $result =& $this->vars['results'][];
- if (FALSE === ($buffer = @mysql_query($query, $this->vars['handle'])))
- $this->vars['properties']['warning_count']++;
- $result['handle'] = $buffer;
- $result['errno'] = mysql_errno($this->vars['handle']);
- $result['error'] = mysql_error($this->vars['handle']);
- }
- $this->next_result();
- if (!$this->vars['current_result']['handle'])
- return FALSE;
- return TRUE;
- }
-
- public function more_results()
- {
- return isset($this->vars['results'][0]);
- }
-
- public function next_result()
- {
- if (!$this->more_results())
- return FALSE;
- $this->vars['current_result'] = array_shift($this->vars['results']);
- return TRUE;
- }
-
- public function ping()
- {
- return @mysql_ping($this->vars['handle']);
- }
-
- public function real_escape_sring($string)
- {
- return mysql_real_escape_string($string, $this->vars['handle']);
- }
-
- public function query($query)
- {
- $this->vars['results'] = array();
- if (FALSE === ($buffer = @mysql_query($query, $this->vars['handle'])))
- $this->vars['properties']['warning_count']++;
- $this->vars['current_result']['handle'] = $buffer;
- $this->vars['current_result']['errno'] = mysql_errno($this->vars['handle']);
- $this->vars['current_result']['error'] = mysql_error($this->vars['handle']);
- if (!$buffer)
- return FALSE;
- return new mysql_result($buffer);
- }
-
- public function select_db($database)
- {
- if (!@mysql_select_db($database, $this->vars['handle']))
- return FALSE;
- $this->vars['config']['database'] = $database;
- return TRUE;
- }
-
- public function store_result()
- {
- if (FALSE === $this->vars['current_result']['handle'])
- return FALSE;
- return new mysql_result($this->vars['current_result']['handle']);
- }
-
- public function use_result()
- {
- return $this->store_result();
- }
- }
-
- class mysql_result
- {
- public $vars;
-
- public function __construct($handle)
- {
- $this->vars = array();
- $this->vars['current_field'] = NULL;
- $this->vars['field_count'] = mysql_num_fields($handle);
- $this->vars['handle'] = $handle;
- $this->vars['lenghts'] = FALSE;
- $this->vars['num_rows'] = mysql_num_rows($handle);
- }
-
- public function __get($name)
- {
- switch ($name)
- {
- case 'current_field' : return $this->vars['current_field'];
- case 'field_count' : return $this->vars['field_count'];
- case 'lenghts' : return $this->vars['lenghts'];
- case 'num_rows' : return $this->vars['num_rows'];
- }
- }
-
- public function close()
- {
- return mysql_free_result($this->vars['handle']);
- }
-
- public function data_seek($rows = 1)
- {
- return @mysql_data_seek($this->vars['handle'], $rows);
- }
-
- public function fetch_array($result_type = MYSQL_BOTH)
- {
- $result = mysql_fetch_array($this->vars['handle'], $result_type);
- $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
- return $result;
- }
-
- public function fetch_assoc()
- {
- $result = mysql_fetch_assoc($this->vars['handle']);
- $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
- return $result;
- }
-
- public function fetch_field()
- {
- if (!($buffer = mysql_fetch_field($this->vars['handle'])))
- return FALSE;
- if (!isset($this->vars['current_field']))
- $this->vars['current_field'] = 0;
- else
- $this->vars['current_field']++;
- return $buffer;
- }
-
- public function fetch_field_direct($id)
- {
- if(!$this->field_seek($id))
- return FALSE;
- return mysql_fetch_field($this->vars['handle']);
- }
-
- public function fetch_fields()
- {
- $fields = array();
- while ($buffer = $this->fetch_field())
- $fields[] = $buffer;
- return $fields;
- }
-
- public function fetch_object()
- {
- $result = mysql_fetch_object($this->vars['handle']);
- $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
- return $result;
- }
-
- public function fetch_row()
- {
- $result = mysql_fetch_row($this->vars['handle']);
- $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
- return $result;
- }
-
- public function field_seek($field = 0)
- {
- if (@mysql_field_seek($this->vars['handle'], $field))
- return FALSE;
- $this->vars['current_field'] = $field;
- return TRUE;
- }
- }
- ?>
<?php
require_once('class.myexception.php');
class mysql
{
protected $vars;
public function __construct($host = 'localhost', $user = 'root', $password = '', $database = FALSE, $port = 3306)
{
$this->vars = array();
$this->vars['config'] = array();
$this->vars['config']['host'] = $host.':'.$port;
$this->vars['config']['user'] = $user;
$this->vars['config']['password'] = $password;
$this->vars['config']['database'] = NULL;
$this->vars['handle'] = @mysql_connect($host, $user, $password, TRUE);
if ($database)
$this->select_db($database);
$this->vars['properties'] = array();
$this->vars['properties']['client_info'] = @mysql_get_client_info();
$buffer = explode('.', $this->vars['properties']['client_info']);
$this->vars['properties']['client_version'] = $buffer[0]*10000+$buffer[1]*100+$buffer[2];
$this->vars['properties']['host_info'] = @mysql_get_host_info($this->vars['handle']);
$this->vars['properties']['protocol_version'] = @mysql_get_proto_info($this->vars['handle']);
$this->vars['properties']['sqlstate'] = '';
$this->vars['properties']['thread_id'] = @mysql_thread_id($this->vars['handle']);
$this->vars['properties']['warning_count'] = 0;
$this->vars['current_result'] = array();
$this->vars['current_result']['handle'] = NULL;
$this->vars['current_result']['errno'] = 0;
$this->vars['current_result']['error'] = '';
$this->vars['results'] = array();
}
public function __get($var)
{
switch ($var)
{
case 'affected_rows' : return mysql_affected_rows($this->vars['handle']);
case 'client_info' : return $this->vars['properties']['client_info'];
case 'client_version' : return $this->vars['properties']['client_version'];
case 'errno' : return $this->vars['current_result']['errno'];
case 'error' : return $this->vars['current_result']['error'];
case 'field_count' : return mysql_num_fields($this->vars['current_result']['handle']);
case 'handle' : return $this->vars['handle'];
case 'host_info' : return $this->vars['properties']['host_info'];
case 'info' : return mysql_info($this->vars['handle']);
case 'insert_id' : return mysql_insert_id($this->vars['handle']);
case 'protocol_version' : return $this->vars['properties']['protocol_version'];
case 'sqlstate' : return $this->vars['properties']['sqlstate'];//---------
case 'thread_id' : return $this->vars['properties']['thread_id'];
case 'warning_count' : return $this->vars['properties']['warning_count'];
}
}
public function change_user($user, $password, $database = NULL)
{
return mysql_change_user($user, $password, $database, $this->vars['handle']);
}
public function character_set_name()
{
return mysql_client_encoding($this->vars['handle']);
}
public function client_encoding()
{
return mysql_client_encoding($this->vars['handle']);
}
public function close()
{
return mysql_close($this->vars['handle']);
}
public function escape_sring($string)
{
return mysql_real_escape_string($string, $this->vars['handle']);
}
public function multi_query($query)
{
$query = trim($query, '\r\n\t ;');
$queries = array();
while (FALSE !== strpos($query, ';'))
{
list($buffer, $query) = explode(';', $query, 2);
if (strlen($query))
$queries[] = $buffer;
unset($buffer);
}
if (strlen($query))
$queries[] = $query;
$this->vars['results'] = array();
foreach ($queries as $query)
{
$result =& $this->vars['results'][];
if (FALSE === ($buffer = @mysql_query($query, $this->vars['handle'])))
$this->vars['properties']['warning_count']++;
$result['handle'] = $buffer;
$result['errno'] = mysql_errno($this->vars['handle']);
$result['error'] = mysql_error($this->vars['handle']);
}
$this->next_result();
if (!$this->vars['current_result']['handle'])
return FALSE;
return TRUE;
}
public function more_results()
{
return isset($this->vars['results'][0]);
}
public function next_result()
{
if (!$this->more_results())
return FALSE;
$this->vars['current_result'] = array_shift($this->vars['results']);
return TRUE;
}
public function ping()
{
return @mysql_ping($this->vars['handle']);
}
public function real_escape_sring($string)
{
return mysql_real_escape_string($string, $this->vars['handle']);
}
public function query($query)
{
$this->vars['results'] = array();
if (FALSE === ($buffer = @mysql_query($query, $this->vars['handle'])))
$this->vars['properties']['warning_count']++;
$this->vars['current_result']['handle'] = $buffer;
$this->vars['current_result']['errno'] = mysql_errno($this->vars['handle']);
$this->vars['current_result']['error'] = mysql_error($this->vars['handle']);
if (!$buffer)
return FALSE;
return new mysql_result($buffer);
}
public function select_db($database)
{
if (!@mysql_select_db($database, $this->vars['handle']))
return FALSE;
$this->vars['config']['database'] = $database;
return TRUE;
}
public function store_result()
{
if (FALSE === $this->vars['current_result']['handle'])
return FALSE;
return new mysql_result($this->vars['current_result']['handle']);
}
public function use_result()
{
return $this->store_result();
}
}
class mysql_result
{
public $vars;
public function __construct($handle)
{
$this->vars = array();
$this->vars['current_field'] = NULL;
$this->vars['field_count'] = mysql_num_fields($handle);
$this->vars['handle'] = $handle;
$this->vars['lenghts'] = FALSE;
$this->vars['num_rows'] = mysql_num_rows($handle);
}
public function __get($name)
{
switch ($name)
{
case 'current_field' : return $this->vars['current_field'];
case 'field_count' : return $this->vars['field_count'];
case 'lenghts' : return $this->vars['lenghts'];
case 'num_rows' : return $this->vars['num_rows'];
}
}
public function close()
{
return mysql_free_result($this->vars['handle']);
}
public function data_seek($rows = 1)
{
return @mysql_data_seek($this->vars['handle'], $rows);
}
public function fetch_array($result_type = MYSQL_BOTH)
{
$result = mysql_fetch_array($this->vars['handle'], $result_type);
$this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
return $result;
}
public function fetch_assoc()
{
$result = mysql_fetch_assoc($this->vars['handle']);
$this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
return $result;
}
public function fetch_field()
{
if (!($buffer = mysql_fetch_field($this->vars['handle'])))
return FALSE;
if (!isset($this->vars['current_field']))
$this->vars['current_field'] = 0;
else
$this->vars['current_field']++;
return $buffer;
}
public function fetch_field_direct($id)
{
if(!$this->field_seek($id))
return FALSE;
return mysql_fetch_field($this->vars['handle']);
}
public function fetch_fields()
{
$fields = array();
while ($buffer = $this->fetch_field())
$fields[] = $buffer;
return $fields;
}
public function fetch_object()
{
$result = mysql_fetch_object($this->vars['handle']);
$this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
return $result;
}
public function fetch_row()
{
$result = mysql_fetch_row($this->vars['handle']);
$this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
return $result;
}
public function field_seek($field = 0)
{
if (@mysql_field_seek($this->vars['handle'], $field))
return FALSE;
$this->vars['current_field'] = $field;
return TRUE;
}
}
?>
Conclusion
Si vous avez des commentaires ou des suggestions, n'hesitez pas.
Si vous souhaitez mettre une bonne note a cette source n'hesitez pas non plus. lol
Historique
- 18 décembre 2004 23:49:28 :
- Gestion des exceptions, nettoyage du code : les variables Host, User et Password sont desormais publiques, on ne passe plus par des fonctions pour modifier leur valeur.
- 19 décembre 2004 00:04:51 :
- Correction de quelques erreurs
- 20 décembre 2004 19:17:17 :
- Evolution majeur de la classe, encore en travaux
- 21 décembre 2004 21:58:46 :
- Meme si cette classe est encore loin d'etre finie, car il manque encore des methodes, elle est deja fonctionnelle.
- 06 février 2005 19:16:44 :
- La classe est presque complete, il ne manque que le gestion de sqlstate (si quelqu'un sait faire) et la methode prepare avec la classe mysql_stmt
A part ca, la classe fonctionne très bien.
- 06 février 2005 20:45:03 :
- Ajout du zip
- 08 mars 2005 19:13:33 :
- Un petit nettoyage de code.
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|