Subversion Repositories Applications.framework

Rev

Rev 238 | Rev 241 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 238 Rev 239
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) {