| Line 15... |
Line 15... |
| 15 |
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
|
15 |
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
|
| 16 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
16 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
| 17 |
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
|
17 |
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
|
| 18 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
18 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
| 19 |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
|
19 |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
|
| 20 |
* @version $Id: Bdd.php 238 2010-11-24 17:53:29Z jpm $
|
20 |
* @version $Id: Bdd.php 239 2010-11-25 18:04:00Z jpm $
|
| 21 |
* @link /doc/framework/
|
21 |
* @link /doc/framework/
|
| 22 |
*/
|
22 |
*/
|
| 23 |
class Bdd {
|
23 |
class Bdd {
|
| 24 |
/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
|
24 |
/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
|
| 25 |
const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
|
25 |
const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
|
| Line 177... |
Line 177... |
| 177 |
}
|
177 |
}
|
| 178 |
}
|
178 |
}
|
| 179 |
}
|
179 |
}
|
| Line 180... |
Line 180... |
| 180 |
|
180 |
|
| - |
|
181 |
/**
|
| - |
|
182 |
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see requeter
|
| - |
|
183 |
*/
|
| - |
|
184 |
final protected function requete($requete) {
|
| - |
|
185 |
return $this->requeter($requete, $mode);
|
| - |
|
186 |
}
|
| - |
|
187 |
|
| 181 |
/**
|
188 |
/**
|
| 182 |
* Execute une requête et retourne le résultat tel que renvoyé par l'abstraction courante.
|
189 |
* Execute une requête et retourne le résultat tel que renvoyé par l'abstraction courante.
|
| 183 |
*
|
190 |
*
|
| 184 |
* @param string la requête à effectuer
|
191 |
* @param string la requête à effectuer
|
| 185 |
* @return mixed un objet contenant le résultat de la requête
|
192 |
* @return mixed un objet contenant le résultat de la requête
|
| 186 |
*/
|
193 |
*/
|
| 187 |
public function requete($requete) {
|
194 |
public function requeter($requete) {
|
| Line 188... |
Line 195... |
| 188 |
$this->connecter();
|
195 |
$this->connecter();
|
| 189 |
|
196 |
|
| 190 |
$retour = null;
|
197 |
$retour = null;
|
| Line 207... |
Line 214... |
| 207 |
$retour = $this->connexion->exec($requete);
|
214 |
$retour = $this->connexion->exec($requete);
|
| 208 |
break;
|
215 |
break;
|
| 209 |
}
|
216 |
}
|
| 210 |
return $retour;
|
217 |
return $retour;
|
| 211 |
}
|
218 |
}
|
| 212 |
|
219 |
|
| - |
|
220 |
/**
|
| - |
|
221 |
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recuperer
|
| - |
|
222 |
*/
|
| - |
|
223 |
final protected function requeteUn($requete, $mode = self::MODE_ASSOC) {
|
| - |
|
224 |
return $this->recuperer($requete, $mode);
|
| - |
|
225 |
}
|
| - |
|
226 |
|
| 213 |
/**
|
227 |
/**
|
| 214 |
* Execute une requête et retourne le premier résultat sous forme de tableau (par défaut) ou d'objet.
|
228 |
* Execute une requête et retourne le premier résultat sous forme de tableau (par défaut) ou d'objet.
|
| 215 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau ou aux noms des attributs de l'objet.
|
229 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau ou aux noms des attributs de l'objet.
|
| 216 |
*
|
230 |
*
|
| 217 |
* @param string la requête à effectuer
|
231 |
* @param string la requête à effectuer
|
| 218 |
* @param string le mode de retour ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
232 |
* @param string le mode de retour ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
| 219 |
* @return mixed un objet ou un tableau contenant le résultat de la requête
|
233 |
* @return mixed un objet ou un tableau contenant le résultat de la requête
|
| 220 |
*/
|
234 |
*/
|
| 221 |
public function requeteUn($requete, $mode = self::MODE_ASSOC) {
|
235 |
public function recuperer($requete, $mode = self::MODE_ASSOC) {
|
| 222 |
$this->connecter();
|
236 |
$this->connecter();
|
| Line 223... |
Line 237... |
| 223 |
|
237 |
|
| 224 |
$retour = null;
|
238 |
$retour = null;
|
| 225 |
switch ($this->abstraction) {
|
239 |
switch ($this->abstraction) {
|
| Line 246... |
Line 260... |
| 246 |
$retour = $this->connexion->querySingle($requete);
|
260 |
$retour = $this->connexion->querySingle($requete);
|
| 247 |
break;
|
261 |
break;
|
| 248 |
}
|
262 |
}
|
| 249 |
return $retour;
|
263 |
return $retour;
|
| 250 |
}
|
264 |
}
|
| 251 |
|
265 |
|
| - |
|
266 |
/**
|
| - |
|
267 |
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recupererTous
|
| - |
|
268 |
*/
|
| - |
|
269 |
final protected function requeteTous($requete, $mode = self::MODE_ASSOC) {
|
| - |
|
270 |
return $this->recupererTous($requete, $mode);
|
| - |
|
271 |
}
|
| - |
|
272 |
|
| 252 |
/**
|
273 |
/**
|
| 253 |
* Execute une requête et retourne un tableau de résultats. Un résultat peut être présentés sous forme
|
274 |
* Execute une requête et retourne un tableau de résultats. Un résultat peut être présentés sous forme
|
| 254 |
* de tableau (par défaut) ou d'objet.
|
275 |
* de tableau (par défaut) ou d'objet.
|
| 255 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau résultat ou
|
276 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau résultat ou
|
| 256 |
* aux noms des attributs de l'objet résultat.
|
277 |
* aux noms des attributs de l'objet résultat.
|
| 257 |
*
|
278 |
*
|
| 258 |
* @param string la requête à effectuer
|
279 |
* @param string la requête à effectuer
|
| 259 |
* @param string le mode de retour des résultats : ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
280 |
* @param string le mode de retour des résultats : ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
| 260 |
* @return array un tableau contenant les résultats sous forme d'objets ou de tableau (par défaut).
|
281 |
* @return array un tableau contenant les résultats sous forme d'objets ou de tableau (par défaut).
|
| 261 |
*/
|
282 |
*/
|
| 262 |
public function requeteTous($requete, $mode = self::MODE_ASSOC) {
|
283 |
public function recupererTous($requete, $mode = self::MODE_ASSOC) {
|
| 263 |
$this->connecter();
|
284 |
$this->connecter();
|
| 264 |
|
285 |
|
| 265 |
$retour = null;
|
286 |
$retour = null;
|
| 266 |
switch ($this->abstraction) {
|
287 |
switch ($this->abstraction) {
|
| 267 |
case self::ABSTRACTION_PDO :
|
288 |
case self::ABSTRACTION_PDO :
|
| 268 |
try {
|
289 |
try {
|
| 269 |
$resultat = $this->connexion->query($requete);
|
290 |
$resultat = $this->connexion->query($requete);
|
| Line 334... |
Line 355... |
| 334 |
}
|
355 |
}
|
| 335 |
return $retour;
|
356 |
return $retour;
|
| 336 |
}
|
357 |
}
|
| Line 337... |
Line 358... |
| 337 |
|
358 |
|
| - |
|
359 |
/**
|
| - |
|
360 |
* Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment, dans
|
| - |
|
361 |
* le cas de PDO, du driver utilisé. Les méthodes utilisées pour retourner l'identifiant peuvent avoir des comportements
|
| - |
|
362 |
* différent. Consulter la documentation PHP correspondant à l'abstraction choisie avant de l'utiliser :
|
| - |
|
363 |
* @link(http://fr.php.net/manual/fr/pdo.lastinsertid.php, PDO::lastInsertId([ string $name = NULL ]))
|
| - |
|
364 |
* @link(http://php.net/manual/en/mysqli.insert-id.php, mysqli->insert_id())
|
| - |
|
365 |
* @link(http://fr.php.net/manual/fr/function.mysql-insert-id.php, mysql_insert_id())
|
| - |
|
366 |
* @link(http://fr.php.net/manual/fr/sqlite3.lastinsertrowid.php, SQLite3::lastInsertRowID())
|
| - |
|
367 |
* @param mixed un paramètre éventuel à transmettre (en fonction de l'abstraction de BDD utilisée).
|
| - |
|
368 |
* @return mixed le dernier identifiant de clé primaire ajouté dans la base de données (string ou int).
|
| - |
|
369 |
*/
|
| - |
|
370 |
public function recupererIdDernierAjout($parametres = null) {
|
| - |
|
371 |
$this->connecter();
|
| - |
|
372 |
|
| - |
|
373 |
$retour = $chaine;
|
| - |
|
374 |
switch ($this->abstraction) {
|
| - |
|
375 |
case self::ABSTRACTION_PDO :
|
| - |
|
376 |
$retour = $this->connexion->lastInsertId($parametres);
|
| - |
|
377 |
break;
|
| - |
|
378 |
case self::ABSTRACTION_MYSQL :
|
| - |
|
379 |
$retour = mysql_insert_id($this->connexion);
|
| - |
|
380 |
break;
|
| - |
|
381 |
case self::ABSTRACTION_MYSQLI :
|
| - |
|
382 |
$retour = $this->connexion->insert_id();
|
| - |
|
383 |
break;
|
| - |
|
384 |
case self::ABSTRACTION_SQLITE3 :
|
| - |
|
385 |
$retour = $this->connexion->lastInsertRowID();
|
| - |
|
386 |
break;
|
| - |
|
387 |
}
|
| - |
|
388 |
return $retour;
|
| - |
|
389 |
}
|
| - |
|
390 |
|
| 338 |
/**
|
391 |
/**
|
| 339 |
* Destructeur de classe, se contente de fermer explicitement la connexion à la base de donnée.
|
392 |
* Destructeur de classe, se contente de fermer explicitement la connexion à la base de donnée.
|
| 340 |
*/
|
393 |
*/
|
| 341 |
protected function __destruct() {
|
394 |
protected function __destruct() {
|
| 342 |
switch ($this->abstraction) {
|
395 |
switch ($this->abstraction) {
|