recupererTous($requete); $this->reinitialiserTempsDerniereRequete(); return $resultat; } public function rechercherCoordonneesSansCorrespondances() { $requete = 'SELECT longitude, latitude '. 'FROM cel_obs '. "WHERE code_insee_calcule = '' ". ' AND DATE_ADD(date_modification, INTERVAL 25 HOUR) >= CURDATE() '. 'GROUP BY longitude , latitude '; $resultat = $this->recupererTous($requete); $this->reinitialiserTempsDerniereRequete(); return $resultat; } public function creerColonneCodeInseeCalcule() { $create = 'ALTER TABLE cel_obs '. 'ADD code_insee_calcule VARCHAR(5) NOT NULL '; $this->requeter($create); $this->reinitialiserTempsDerniereRequete(); } public function ajouterCodeInseeCalcule($latitude, $longitude, $code_insee) { $insert = 'UPDATE cel_obs '. "SET code_insee_calcule = ".$this->proteger($code_insee)." ". "WHERE latitude = ".$this->proteger($latitude)." ". " AND longitude = ".$this->proteger($longitude)." "; $this->requeter($insert); $this->reinitialiserTempsDerniereRequete(); } public function modifierCodeInseeEtZoneGeo($coordonnees) { $update = "UPDATE cel_obs ". "SET ce_zone_geo = concat('INSEE-C:' , code_insee_calcule), ". "zone_geo = ".$this->proteger($coordonnees['nom'])." ". "WHERE ce_zone_geo = '' AND zone_geo = '' ". " AND latitude = ".$this->proteger($coordonnees['latitude'])." ". " AND longitude = ".$this->proteger($coordonnees['longitude'])." "; $this->requeter($update); $this->reinitialiserTempsDerniereRequete(); } // Il peut se passer assez de temps sans qu'aucune requete ne soit effectuée // (cas d'un grand nombre d'enregistrements à la suite pour lesquels on ne trouve // aucun département). Pour éviter cela on teste régulièrement la connection public function testerActiviteConnection() { $temps_courant = microtime(true); $temps_depuis_derniere_requete = $temps_courant - $this->temps_derniere_requete; if($temps_depuis_derniere_requete >= 18) { $this->ping(); $this->reinitialiserTempsDerniereRequete(); } } private function reinitialiserTempsDerniereRequete() { $this->temps_derniere_requete = microtime(true); } } ?>