HelloCSE/app/Http/Utility/sqlUtility.php
2024-04-10 13:56:22 +02:00

43 lignes
Pas d'EOL
1,4 Kio
PHP

<?php
namespace App\Http\Utility;
/**
* Classe contenant quelques fonctions utiles pour le formatage SQL
*
*/
class sqlUtility{
// devine le masque de format de date en fonction d'une string de date
public static function guessFormatMask($dateStr){
$formats=[
'\d{4}\/\d{2}\/\d{2}'=>'YYYY/MM/DD',
'\d{4}\-\d{2}\-\d{2}'=>'YYYY-MM-DD',
'\d{4}\/\d{2}\/\d{2}\s\d{2}:\d{2}'=>'YYYY/MM/DD HH24:MI',
'\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}'=>'YYYY-MM-DD HH24:MI:SS',
'\d{4}\/\d{2}\/\d{2}\s\d{2}:\d{2}:\d{2}'=>'YYYY/MM/DD HH24:MI:SS',
'\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}'=>'YYYY-MM-DD"T"HH24:MI:SS',
'\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}Z'=>'YYYY-MM-DD"T"HH24:MI:SS"Z"',
];
$format=false;
foreach($formats as $rgx=>$ociFormat){
if(preg_match("/$rgx/", $dateStr))
$format=$ociFormat;
}
return $format;
}
// retourne une fonction "to_date" sql complète en fonction d'une string de date
public static function dateStrToToDate($dateStr){
$format=self::guessFormatMask($dateStr);
if($format)
$format="TO_DATE('$dateStr','$format')";
return $format;
}
public static function toSQL($Str=''){
return str_replace("'","''",trim($Str));
}
}