[ Index ]
 

Code source de Dotclear 1.2.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/inc/classes/ -> class.mysql.php (source)

   1  <?php
   2  # ***** BEGIN LICENSE BLOCK *****
   3  # This file is part of DotClear.
   4  # Copyright (c) 2004 Olivier Meunier and contributors. All rights
   5  # reserved.
   6  #
   7  # DotClear is free software; you can redistribute it and/or modify
   8  # it under the terms of the GNU General Public License as published by
   9  # the Free Software Foundation; either version 2 of the License, or
  10  # (at your option) any later version.
  11  # 
  12  # DotClear is distributed in the hope that it will be useful,
  13  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15  # GNU General Public License for more details.
  16  # 
  17  # You should have received a copy of the GNU General Public License
  18  # along with DotClear; if not, write to the Free Software
  19  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  20  #
  21  # ***** END LICENSE BLOCK *****
  22  
  23  # Classe de connexion MySQL
  24  
  25  require_once dirname(__FILE__).'/class.recordset.php';
  26  
  27  /**
  28  @class connection
  29  
  30  @param    ressource    con_id        Identifiant de connexion
  31  @param    string    error        Dernière erreur de la base de données
  32  @param    integer    errorno        Numéro de la dernière erreur
  33  */
  34  
  35  class connection
  36  {
  37      var $con_id;
  38      var $error;
  39      var $errno;
  40      
  41      /** @doc
  42      === Méthodes === */
  43      
  44      /**
  45      @function connection
  46      
  47      '''Constructeur'''. Initialise la connection à la base de données.
  48      
  49      @param    string    user            ID de l'utilisateur
  50      @param    string    pwd            Mot de passe
  51      @param    string    alias        Serveur auquel se connecter
  52      @param    string    dbname        Nom de la base de données
  53      */
  54  	function connection($user, $pwd , $alias='', $dbname)
  55      {
  56          $this->error = '';
  57          
  58          $this->con_id = @mysql_connect($alias, $user, $pwd);
  59          
  60          if (!$this->con_id) {
  61              $this->setError();
  62          } else {
  63              $this->database($dbname);
  64          }
  65      }
  66      
  67      /**
  68      @function database
  69      
  70      Change de base de données. Renvoie vrai en cas de succès.
  71      
  72      @param    string    dbname        Nom de la base de données
  73      @return    boolean
  74      */
  75  	function database($dbname)
  76      {
  77          $db = @mysql_select_db($dbname);
  78          if(!$db) {
  79              $this->setError();
  80              return false;
  81          } else {
  82              return true;
  83          }
  84      }
  85      
  86      /**
  87      @function close
  88      
  89      Ferme la connection à la base de données et renvoie vrai en cas de succès.
  90      
  91      @return    boolean
  92      */
  93  	function close()
  94      {
  95          if ($this->con_id) {
  96              mysql_close($this->con_id);
  97              return true;
  98          } else {
  99              return false;
 100          }
 101      }
 102      
 103      /**
 104      @function select
 105      
 106      Execute une requête SQL et renvoie le resultat dans une instance de l'objet
 107      dont le type est défini par $class. Le type d'objet par défaut est un
 108      recordset.
 109      
 110      N'importe quel objet peut-être utilisé à la place du recordset du moment
 111      qu'il prend un tableau multidimmensionel comme premier argument de son
 112      constructeur.
 113      
 114      Cette méthode renvoie false en cas d'erreur.
 115      
 116      @param    string    query        Requête SQL
 117      @param    string    class        Type d'objet à renvoyer ('recordset')
 118      @return    recordset
 119      */
 120  	function select($query,$class='recordset')
 121      {
 122          if (!$this->con_id) {
 123              return false;
 124          }
 125          
 126          if ($class == '' || !class_exists($class)) {
 127              $class = 'recordset';
 128          }
 129          
 130          $cur = mysql_unbuffered_query($query, $this->con_id);
 131          
 132          if ($cur)
 133          {
 134              # Insertion dans le reccordset
 135              $i = 0;
 136              $arryRes = array();
 137              while($res = mysql_fetch_row($cur))
 138              {
 139                  for($j=0; $j<count($res); $j++)
 140                  {
 141                      $arryRes[$i][strtolower(mysql_field_name($cur, $j))] = $res[$j];        
 142                  }
 143                  $i++;
 144              }
 145              
 146              return new $class($arryRes);
 147          }
 148          else
 149          {
 150              $this->setError();
 151              return false;
 152          }
 153      }
 154      
 155      /**
 156      @function execute
 157      
 158      Cette méthode exécute la requête $query et renvoi vrai si aucune erreur
 159      ne s'est produite, faux dans le cas contraire.
 160      
 161      @param    string    query        Requête SQL
 162      @return    boolean
 163      */
 164  	function execute($query)
 165      {
 166          if (!$this->con_id) {
 167              return false;
 168          }
 169          
 170          $cur = mysql_query($query, $this->con_id);
 171          
 172          if (!$cur) {
 173              $this->setError();
 174              return false;
 175          } else {
 176              return true;
 177          }
 178          
 179      }
 180      
 181      /**
 182      @function getLastID
 183      
 184      Cette méthode renvoie le dernier ID inséré et créé par auto
 185      incrémentation.
 186      
 187      @return    string
 188      */
 189  	function getLastID()
 190      {
 191          if ($this->con_id) {
 192              return mysql_insert_id($this->con_id);
 193          } else {
 194              return false;
 195          }
 196      }
 197      
 198      /**
 199      @function rowCount
 200      
 201      Cette méthode indique le nombre de lignes affectées par la dernière
 202      opération en DELETE, INSERT, UPDATE.
 203      
 204      @return    integer
 205      */
 206  	function rowCount()
 207      {
 208          if ($this->con_id) {
 209              return mysql_affected_rows($this->con_id);
 210          } else {
 211              return false;
 212          }
 213      }
 214      
 215      /**
 216      @function setError
 217      
 218      Cette méthode référence la dernière erreur du moteur de base de données
 219      dans les propriétés '''error''' et '''errorno'''.
 220      
 221      Le résultat de cette méthode privée est exploitable par la méthode
 222      ''error''.
 223      */
 224  	function setError()
 225      {
 226          if ($this->con_id) {
 227              $this->error = mysql_error($this->con_id);
 228              $this->errno = mysql_errno($this->con_id);
 229          } else {
 230              $this->error = (mysql_error() !== false) ? mysql_error() : 'Unknown error';
 231              $this->errno = (mysql_errno() !== false) ? mysql_errno() : 0;
 232          }
 233      }
 234      
 235      /**
 236      @function error
 237      
 238      Renvoie la dernière erreur de la base de données dans le format
 239      ''numéro'' - ''erreur''. Renvoie faux si aucune erreur.
 240      
 241      @return string
 242      */
 243  	function error()
 244      {
 245          if ($this->error != '') {
 246              return $this->errno.' - '.$this->error;
 247          } else {
 248              return false;
 249          }
 250      }
 251      
 252      /**
 253      @function escapeStr
 254      
 255      Cette méthode formate une chaîne de caractères pour la protéger lors de
 256      son insertion dans une requête SQL.
 257      
 258      @param    string    str            Chaîne à protéger
 259      @return    string
 260      */
 261  	function escapeStr($str)
 262      {
 263          return mysql_escape_string($str);
 264      }
 265  }
 266  
 267  ?>


Généré le : Fri Feb 23 21:40:15 2007 par Balluche grâce à PHPXref 0.7