com.neolao.database.DatabaseUtils

Fonctions utiles liées aux bases de données

Méthodes

Visibilité Return Nom Param 1 Description
static public string escape mixed $value Echapper les valeurs, contre les injections SQL

Change log

[11/05/2005] Version 1.0

Création

[14/05/2005] Version 1.1

La fonction fournie par le site ne marche pas (pfff, j'me disais aussi que c'était louche). Je la modifie

Source

/**
 * Fonctions utiles liées aux bases de données
 * @package		com.neolao
 * @subpackage		database
 * @author 		neolao <neo@neolao.com>
 * @version 		1.1 (15/05/2005)
 * @link		http://resources.neolao.com/php/classes/database/databaseutils
 */
class DatabaseUtils {
	// ----------------------------- VARIABLES ---------------------------------
 
	/*=========================== METHODES PRIVEES ===========================*/
	/*========================================================================*/
 
	/*===================== FIN = METHODES PRIVEES = FIN =====================*/
	/*========================================================================*/
 
	/*============================ GETTER  SETTER ============================*/
	/*========================================================================*/
 
	/*====================== FIN = GETTER  SETTER = FIN ======================*/
	/*========================================================================*/
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Echapper les valeurs, contre les injections SQL
	 * @param mixed $value La valeur à échapper
	 * @return string La valeur échappée
	 */
	static public function escape($value){
		// Efface les espaces en trop
		$value = trim($value);
 
		if(ereg("^'(.*)'$", $value, $regs) !== false){
			// La valeur est entre quote, c'est donc une chaine
			$value = $regs[1];
			// Stripslashes
			if (get_magic_quotes_gpc()) {
				$value = stripslashes($value);
			}
			// On échape tout ce qu'il y a à l'intérieur
			$value = "'" . mysql_real_escape_string($value) . "'";
		}else{
			// La valeur n'est pas entre quote, ce n'est pas une chaine
			// Protection si ce n'est pas vraiment un nombre
			if (!is_numeric($value)) {
				$value = "'".mysql_real_escape_string($value)."'";
			}else{
				$value = mysql_real_escape_string($value);
			}
		}
 
		return (string) $value;
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}