Subversion Repositories Applications.framework

Rev

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

Rev 435 Rev 460
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) 2010, Tela Botanica (accueil@tela-botanica.org)
17
 * @copyright	Copyright (c) 2010, 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 435 2013-09-04 14:29:43Z jpm $
-
 
21
 * @link		/doc/framework/
-
 
22
 */
20
 */
23
class Bdd {
21
class Bdd {
24
	/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
22
	/** 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';
23
	const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
Line 191... Line 189...
191
				default:
189
				default:
192
					$this->connexion = null;
190
					$this->connexion = null;
193
			}
191
			}
194
		}
192
		}
195
	}
193
	}
196
	
194
 
197
	/**
195
	/**
198
	 * Permet de tester, puis de reconnecter une connection au cas ou celle aurait été 
196
	 * Permet de tester, puis de reconnecter une connection au cas ou celle aurait été
199
	 * perdue (utile dans le cas d'une connection ouverte depuis trop longtemps)
197
	 * perdue (utile dans le cas d'une connection ouverte depuis trop longtemps)
200
	 * @return boolean
198
	 * @return boolean
201
	 */
199
	 */
202
	public function ping() {
200
	public function ping() {
203
		try {
201
		try {
Line 370... Line 368...
370
		}
368
		}
371
		return $retour;
369
		return $retour;
372
	}
370
	}
Line 373... Line 371...
373
 
371
 
-
 
372
	/**
-
 
373
	 * Protège une chaine de caractères ou le contenu d'un tablea avant l'insertion dans la base de données
-
 
374
	 * (ajout de quotes ou guillemets).
-
 
375
	 * @param Mixed une chaine ou un tableau à protéger
-
 
376
	 * @return mixed la chaine ou le tableau à protégé
-
 
377
	 */
-
 
378
	public function proteger($donnees) {
-
 
379
		$this->connecter();
-
 
380
		if (is_array($donnees)) {
-
 
381
			$retour = $this->protegerTableau($donnees);
-
 
382
		} else {
-
 
383
			$retour = $this->protegerChaine($donnees);
-
 
384
		}
-
 
385
		return $retour;
-
 
386
	}
-
 
387
 
374
	/**
388
	/**
375
	 * Protège une chaine de caractères avant l'insertion dans la base de données (ajout de quotes ou guillemets).
389
	 * Protège une chaine de caractères avant l'insertion dans la base de données (ajout de quotes ou guillemets).
376
	 * @param string la chaine à protéger
390
	 * @param string la chaine à protéger
377
	 * @return string la chaine protégée
391
	 * @return string la chaine protégée
378
	 */
392
	 */
379
	public function proteger($chaine) {
-
 
380
		$this->connecter();
-
 
381
 
393
	private function protegerChaine($chaine) {
382
		$retour = $chaine;
394
		$retour = $chaine;
383
		switch ($this->abstraction) {
395
		switch ($this->abstraction) {
384
			case self::ABSTRACTION_PDO :
396
			case self::ABSTRACTION_PDO :
385
				$retour = $this->connexion->quote($chaine);
397
				$retour = $this->connexion->quote($chaine);
Line 396... Line 408...
396
		}
408
		}
397
		return $retour;
409
		return $retour;
398
	}
410
	}
Line 399... Line 411...
399
 
411
 
400
	/**
412
	/**
401
	* Protège les chaines d'un tableau de caractères avant l'insertion dans la base de données (ajout de quotes ou guillemets).
-
 
402
	* @param array le tableau de chaines à protéger
-
 
403
	* @return array le tableau avec les chaines protégées
413
	 * @deprecated changement de nom. Deviendra "private" dans la version 0.5. Utiliser à la place : @see proteger
404
	*/
414
	 */
405
	public function protegerTableau($tableau) {
415
	public function protegerTableau(Array $tableau) {
-
 
416
		foreach ($tableau as $id => $val) {
406
		$champsProteges = array();
417
			if (is_array($val)) {
-
 
418
				$tableau[$id] = $this->protegerTableau($val);
407
		foreach($tableau as $champ => $valeur) {
419
			} else {
-
 
420
				$tableau[$id] = $this->protegerChaine($val);
408
			$champsProteges[$champ] = $this->proteger($valeur);
421
			}
409
		}
422
		}
410
		return $champsProteges;
423
		return $tableau;
Line 411... Line 424...
411
	}
424
	}
412
 
425
 
413
	/**
426
	/**
Line 464... Line 477...
464
					break;
477
					break;
465
			}
478
			}
466
		}
479
		}
467
	}
480
	}
468
}
481
}
469
?>
-
 
470
482
?>
-
 
483