initialiserProjet('sptb'); $cmd = $this->getParametre('a'); switch ($cmd) { case 'chargerTous' : $this->chargerStructureSql(); $this->chargerDonnees('especes'); $this->genererChampNumNomRetenu(); break; case 'chargerStructureSql' : $this->chargerStructureSql(); break; case 'chargerDonnees' : $this->chargerDonnees('especes'); $this->genererChampNumNomRetenu(); break; case 'genererChampNumNomRetenu' : $this->genererChampNumNomRetenu(); break; case 'supprimerTous' : $this->supprimerTous(); break; default : throw new Exception("Erreur : la commande '$cmd' n'existe pas!"); } } catch (Exception $e) { $this->traiterErreur($e->getMessage()); } } protected function chargerDonnees($type) { $chemin = Config::get('chemins.'.$type); $table = Config::get('tables.'.$type); $requete = "LOAD DATA INFILE '$chemin' ". "REPLACE INTO TABLE $table ". 'CHARACTER SET utf8 '. 'FIELDS '. " TERMINATED BY '\t' ". " ENCLOSED BY '' ". " ESCAPED BY '\\\' ". 'IGNORE 1 LINES'; $this->getBdd()->requeter($requete); } private function genererChampNumNomRetenu() { $this->preparerTablePrChpNumNomRetenu(); $this->genererNumNomRetenu(); } private function preparerTablePrChpNumNomRetenu() { $table = Config::get('tables.especes'); $requete = "SHOW COLUMNS FROM $table LIKE 'num_nom_retenu' "; $resultat = $this->getBdd()->recuperer($requete); if ($resultat === false) { $requete = "ALTER TABLE $table ". 'ADD num_nom_retenu INT(10) '. 'NULL DEFAULT NULL AFTER num_nom'; $this->getBdd()->requeter($requete); } } private function genererNumNomRetenu() { $table = Config::get('tables.especes'); $table_referentiel = Config::get('tables.referentielTaxo'); $requete = 'UPDATE '.$table.' s, '.$table_referentiel.' r '. 'SET s.num_nom_retenu = r.num_nom '. 'WHERE s.cd_nom = r.cd_nom '; $this->getBdd()->requeter($requete); } private function supprimerTous() { $requete = "DROP TABLE IF EXISTS sptb_meta, sptb_especes_v2012, sptb_lois_v2012"; $this->getBdd()->requeter($requete); Debug::printr('suppression'); } } ?>