124 lines
2.4 KiB
PHP
124 lines
2.4 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 array($var);
|
|
return $var;
|
|
}
|
|
|
|
}
|