154 lines
3.9 KiB
PHP
154 lines
3.9 KiB
PHP
<?php
|
|
class InvalidOperatorException extends Exception{
|
|
public $type;
|
|
public $operator;
|
|
|
|
public function __construct ($type,$operator){
|
|
parent::__construct('Invalid operator "'.$operator.'" for the type '.$type);
|
|
}
|
|
|
|
}
|
|
class Utility{
|
|
|
|
/*
|
|
* <> ou !=
|
|
|
|
...les deux valeurs ne sont pas égales
|
|
<
|
|
|
|
...la valeur de gauche est strictement inférieure à celle de droite
|
|
>
|
|
|
|
...la valeur de gauche est strictement supérieure à celle de droite
|
|
<=
|
|
|
|
...la valeur de gauche est strictement inférieure ou égale à celle de droite
|
|
>=
|
|
|
|
...la valeur de gauche est strictement supérieure ou égale à celle de droite
|
|
BETWEEN..AND
|
|
|
|
...la valeur testée est située entre deux valeurs données
|
|
IN
|
|
|
|
...la valeur testée se situe dans une liste valeurs données
|
|
NOT IN
|
|
|
|
...la valeur testée ne se situe pas dans une liste de valeurs données
|
|
LIKE
|
|
|
|
...la valeur de gauche correspond à celle de droite (celle de droite peux utiliser le caractère % pour simuler n'importe quel nombre de caractère, et _ pour un seul caractère
|
|
NOT LIKE
|
|
|
|
...les deux valeurs ne correspondent pas
|
|
REGEXP ou RLIKE
|
|
|
|
...la valeur de gauche correspond à l'expression régulière donnée
|
|
NOT REGEXP
|
|
|
|
...la valeur de gauche ne correspond pas à l'expression régulière donnée
|
|
*/
|
|
|
|
public static function getIntegerSqlOperator($operator){
|
|
switch ($operator){
|
|
case '=':
|
|
return '=';
|
|
case '<':
|
|
return '<';
|
|
case '>':
|
|
return '>';
|
|
case '<=':
|
|
return '<=';
|
|
case '>=':
|
|
return '>=';
|
|
case '=<':
|
|
return '<=';
|
|
case '<>':
|
|
return '<>';
|
|
case '!=':
|
|
return '!=';
|
|
case '!<':
|
|
return '!<';
|
|
case '!>':
|
|
return '!>';
|
|
default:
|
|
throw new InvalidOperatorException('integer',$operator);
|
|
}
|
|
}
|
|
|
|
public static function getStringSqlOperator($operator){
|
|
switch ($operator){
|
|
case '=':
|
|
return '=';
|
|
case '&like;':
|
|
return 'LIKE';
|
|
default:
|
|
throw new InvalidOperatorException('string',$operator);
|
|
}
|
|
}
|
|
|
|
public static function getDateSqlOperator($operator){
|
|
switch ($operator){
|
|
case '=':
|
|
return '=';
|
|
case '<':
|
|
return '<';
|
|
case '>':
|
|
return '>';
|
|
case '<=':
|
|
return '<=';
|
|
case '>=':
|
|
return '>=';
|
|
case '=<':
|
|
return '<=';
|
|
case '<>':
|
|
return '<>';
|
|
case '!=':
|
|
return '!=';
|
|
case '!<':
|
|
return '!<';
|
|
case '!>':
|
|
return '!>';
|
|
default:
|
|
throw new InvalidOperatorException('date',$operator);
|
|
}
|
|
}
|
|
|
|
public static function arrayIfNot($var){
|
|
if(!is_array($var))
|
|
return $var!=NULL?array($var):NULL;
|
|
return $var;
|
|
}
|
|
|
|
public static function getHierarchicCouple(){
|
|
return array("Président","Ministres");
|
|
}
|
|
|
|
public static function sqlProcedure($procedureName,$params,$output){
|
|
$Nparams = array();
|
|
$Oparams = array();
|
|
foreach($params AS $value)
|
|
switch(gettype($value)){
|
|
case 'boolean':$Nparams[]=($value)?'TRUE':'FALSE';break;
|
|
case 'integer':$Nparams[]=strval($value);break;
|
|
case 'double':$Nparams[]=strval($value);break;
|
|
case 'string':$Nparams[]=PDO::quote($value);break;
|
|
default:$Nparams[]='NULL';break;
|
|
}
|
|
for($i=0;$i<count($output);$i++){
|
|
$Nparams[]='@'.strval($i);
|
|
$Oparams[]='@'.strval($i).' AS '.PDO::quote($output[$i]);
|
|
}
|
|
|
|
$rep = $GLOBALS['bdd']->exec('CALL '.PDO::quote($procedureName).'('.implode($Nparams,',').'); SELECT @p2 AS `outputCode`;');
|
|
}
|
|
|
|
const SUCESSFULLY_REGISTERED = 'Vous avez déjà été correctement inscrit sur bernard.com';
|
|
const SUCESSFULLY_LOGGED_IN = 'Vous êtes bien connecté (vous l\'avez été et le serez également)!';
|
|
const SUCESSFULLY_CHANGED_PASSWORD = 'Vos dispositifs d\'identification ont été correctement changés';
|
|
const SUCESSFULLY_CREATED_DISCUSSION = 'C\'est fait !!! (la création de ta discussion bien sûr)';
|
|
|
|
const LOGIN_NEEDED_FOR_PROJECTS = 'Je veut bien être un site web parfait, mais j\'aimerai bien qut tu te connècte pour que je puisse te montrer tes projets';
|
|
|
|
}
|