[ Index ] |
|
Code source de Dotclear 1.2.5 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Fri Feb 23 21:40:15 2007 | par Balluche grâce à PHPXref 0.7 |