Rev 22 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Service fournissant des informations sur la structure d'une table des référentiels.* Encodage en entrée : utf8* Encodage en sortie : utf8** @category Php 5.2* @package Referentiel* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>* @copyright 2010 Tela-Botanica* @version $Id$*/class TableStructure extends Ref {/*** Méthode principale appelée avec une requête de type GET.*/public function getElement($param = array()) {// Initialisation des variables$info = array();// Nour recherchons le type de requête demandé$p = $this->traiterParametresUrl(array('type', 'table'), $param, false);$type = $p['type'];$table = $p['table'];if (!is_null($type)) {if (!is_null($table)) {$methode = 'getElement'.$type;if (method_exists($this, $methode)) {//array_shift($param);$info = $this->$methode($table);} else {$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";}} else {$this->messages[] = "Veuillez préciser le nom de la table comme premier paramêtre.";}} else {$this->messages[] = "Veuillez préciser le type de requête.";}// Envoie sur la sortie standard$this->envoyer($info);}/* Méthode pour récupérer des informations sur les colonnes d'une table.* Appelée avec les paramêtres d'url suivant :* /TableStructure/colonnes/nom_de_la_table*/public function getElementColonnes($table) {$requete = "SHOW COLUMNS FROM `$table` ";// Récupération des résultatstry {$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);if ($donnees === false) {$this->messages[] = "La requête a retourné aucun résultat.";}$info['colonnes'] = $donnees;} catch (PDOException $e) {$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());}return $info;}/* Méthode pour récupérer un tableau d'analyse de la table.* Appelée avec les paramêtres d'url suivant :* /TableStructure/analyse/nom_de_la_table*/public function getElementAnalyse($table) {$requete = "SELECT * FROM `$table` PROCEDURE ANALYSE ( )";// Récupération des résultatstry {$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);if ($donnees === false) {$this->messages[] = "La requête a retourné aucun résultat.";}$info['analyses'] = $donnees;} catch (PDOException $e) {$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());}return $info;}}?>