Rev 1186 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/** Exemple lancement:* /opt/lampp/bin/php -d memory_limit=3500M cli.php sptb -a chargerTous*/class Sptb extends EfloreScript {public function executer() {// Lancement de l'action demandéetry {$this->initialiserProjet('sptb');$cmd = $this->getParametre('a');switch ($cmd) {case 'chargerTous' :$this->chargerStructureSql();$this->chargerDonnees('especes');$this->chargerDonnees('lois');$this-> ajouterChamps();$this->genererChampNumNomRetenu();break;case 'chargerStructureSql' :$this->chargerStructureSql();break;case 'chargerDonnees' :$this->chargerDonnees('especes');$this->chargerDonnees('lois');$this-> ajouterChamps();$this->genererChampNumNomRetenu();break;case 'genererChampNumNomRetenu' :$this-> ajouterChamps();$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 ajouterChamps() {$table = Config::get('tables.especes');$requete = 'ALTER TABLE '.$table.' ADD `num_nom` INT( 10 ) NOT NULL ,ADD `num_nom_retenu` INT( 10 ) NOT NULL ,ADD `nom_sci` VARCHAR( 70 ) NOT NULL ';$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_retenu, s.num_nom = r.num_nom, s.nom_sci = r.nom_sci '.' 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');}}?>