'nom_attribut'), array('nom' => 'type_attribut'), array('nom' => 'clé')); // récupération des valeurs associées au nom et au type des attributs $metadonnees = mysqli_fetch_fields($res); $infos_att = array(); foreach ($metadonnees as $att) { //var_dump($att); $is_in_pk = ($att->flags & MYSQLI_PRI_KEY_FLAG) ? 'PK' : ''; $type = convertir_type($att->{'type'}); array_push($infos_att, array('nom' => $att->{'name'}, 'type' => $type, 'cle' => $is_in_pk)); } return array('schema' => $schema, 'instances' => $infos_att); } /** * Retourne les instances de la table */ function get_infos_instances($nomTable) { global $connexion; // récupération des informations sur la table (schema + instance) $requete = "SELECT * FROM $nomTable"; $res = mysqli_query($connexion, $requete); // extraction des informations sur le schéma à partir du résultat précédent $infos_atts = mysqli_fetch_fields($res); // filtrage des information du schéma pour ne garder que le nom de l'attribut $schema = array(); foreach ($infos_atts as $att) { array_push($schema, array('nom' => $att->{'name'})); // syntaxe objet permettant de récupérer la propriété 'name' du de l'objet descriptif de l'attribut courant } // récupération des données (instances) de la table $instances = mysqli_fetch_all($res, MYSQLI_ASSOC); // renvoi d'un tableau contenant les informations sur le schéma (nom d'attribut) et les n-uplets return array('schema' => $schema, 'instances' => $instances); } function convertir_type($code) { switch ($code) { case 1: return 'BOOL/TINYINT'; case 2: return 'SMALLINT'; case 3: return 'INTEGER'; case 4: return 'FLOAT'; case 5: return 'DOUBLE'; case 7: return 'TIMESTAMP'; case 8: return 'BIGINT/SERIAL'; case 9: return 'MEDIUMINT'; case 10: return 'DATE'; case 11: return 'TIME'; case 12: return 'DATETIME'; case 13: return 'YEAR'; case 16: return 'BIT'; case 246: return 'DECIMAL/NUMERIC/FIXED'; case 252: return 'BLOB/TEXT'; case 253: return 'VARCHAR/VARBINARY'; case 254: return 'CHAR/SET/ENUM/BINARY'; default: return '?'; } } //////////////////////////////////////////////////////////////////////// /////// Traitement de requêtes ////////// //////////////////////////////////////////////////////////////////////// /** * Retourne le résultat (schéma et instances) de la requ$ete $requete * */ function executer_une_requete($requete) { //TODO return null; } ?>