Accueil > > > MLD D'UN BASE DE DONNÉES MYSQL OU SQLITE
MLD D'UN BASE DE DONNÉES MYSQL OU SQLITE
Information sur la source
Description
Avec la croissance grandissante du "reverse ingenering", les programmeur ont de plus en plus souvent a faire des refontes de site internet, et donc pour cela, une refonte des bases de données associés. Seulement le travail de nos rédecesseur n'etant pas toujours bien commenté et documenté, voici un petit outil permettant de remedier a ce probleme. Ce petit code permet d'afficher le MLD de la base de données contenue sur support MySQL ou SQLite.
Source
- Version MySQL :
-
- <?php
-
- $data = SQL_MLDServer("127.0.0.1","root","");
- echo $data;
-
- function SQL_MLDServer($serveur,$user,$password){
-
- $return="";
- $id_sql = mysql_connect($serveur,$user,$password); //CONNECTION AU SERVEUR MYSQL
- $db_list = mysql_list_dbs($id_sql); //LISTER LES BASES DE DONNEES
- $count = mysql_num_rows($db_list); //NOMBRE DE BASE DE DONNEES
- for($i=0;$i<$count;$i++){
- $database = mysql_db_name($db_list, $i);
- $return.="<br><br><font face=tahoma size=3><u><b>{$database}</b></u></font><br>";
- mysql_select_db($database,$id_sql); //CONNECTION A LA BASE DE DONNEES SQL
- $pointeur = mysql_query("SHOW TABLES FROM $database;",$id_sql); //LISTER LES TABLES
- $nbline = mysql_affected_rows($id_sql); //NOMBRES DE TABLES
- for($j=0;$j<$nbline;$j++){
- $return.="<br><font face=tahoma size=2><b>" . mysql_result($pointeur,$j,0) . "</b></font>";
- $list_fields = @mysql_list_fields($database, mysql_result($pointeur,$j,0), $id_sql); //LISTER LES CHAMPS
- $nbcolumntab = @mysql_num_fields($list_fields); //NOMBRE DE CHAMPS
- if($nbcolumntab>0){ //SI ON TROUVE AU MOINS UN CHAMPS
- $return.="<font face=tahoma size=1>(<br></font>";
- for($k=0;$k<$nbcolumntab;$k++){
- $return.= "<font face=tahoma size=1>" . mysql_field_name($list_fields, $k) . "
- " . SQLLexic(mysql_field_type($list_fields, $k)) . "
- (" . mysql_field_len($list_fields, $k) . ")
- " . SQLLexic(mysql_field_flags($list_fields, $k)) . "</font>";
- if($k<$nbcolumntab-1){ $return.="<font face=tahoma size=1>,<br></font>";}
- }
- $return.="<font face=tahoma size=1>);<br></font>";
- } else {
- $return.="<font face=tahoma size=1 color=red>[No fields]</font>";
- }
- }
- }
- return $return;
- }
-
- function SQLLexic($chaine){
- $chaine = str_replace( "string" ,"VARCHAR" ,$chaine);
- $chaine = str_replace( "int" ,"INTEGER" ,$chaine);
- $chaine = str_replace( "not_null" ,"NOT NULL" ,$chaine);
- $chaine = str_replace( "primary_key" ,"PRIMARY KEY" ,$chaine);
- $chaine = str_replace( "auto_increment" ,"AUTO_INCREMENT" ,$chaine);
- $chaine = str_replace( "unsigned" ,"UNSIGNED" ,$chaine);
- $chaine = str_replace( "real" ,"FLOAT" ,$chaine);
- $chaine = str_replace( "timestamp" ,"TIMESTAMP" ,$chaine);
- $chaine = str_replace( "blob" ,"BLOB" ,$chaine);
- $chaine = str_replace( "binary" ,"BINARY" ,$chaine);
- $chaine = str_replace( "enum" ,"" ,$chaine);
- $chaine = str_replace( "multiple_key" ,"" ,$chaine);
- $chaine = str_replace( "unique_key" ,"" ,$chaine);
- $chaine = str_replace( "zerofill" ,"" ,$chaine);
- return "{$chaine}";
- }
-
- ?>
Version MySQL :
<?php
$data = SQL_MLDServer("127.0.0.1","root","");
echo $data;
function SQL_MLDServer($serveur,$user,$password){
$return="";
$id_sql = mysql_connect($serveur,$user,$password); //CONNECTION AU SERVEUR MYSQL
$db_list = mysql_list_dbs($id_sql); //LISTER LES BASES DE DONNEES
$count = mysql_num_rows($db_list); //NOMBRE DE BASE DE DONNEES
for($i=0;$i<$count;$i++){
$database = mysql_db_name($db_list, $i);
$return.="<br><br><font face=tahoma size=3><u><b>{$database}</b></u></font><br>";
mysql_select_db($database,$id_sql); //CONNECTION A LA BASE DE DONNEES SQL
$pointeur = mysql_query("SHOW TABLES FROM $database;",$id_sql); //LISTER LES TABLES
$nbline = mysql_affected_rows($id_sql); //NOMBRES DE TABLES
for($j=0;$j<$nbline;$j++){
$return.="<br><font face=tahoma size=2><b>" . mysql_result($pointeur,$j,0) . "</b></font>";
$list_fields = @mysql_list_fields($database, mysql_result($pointeur,$j,0), $id_sql); //LISTER LES CHAMPS
$nbcolumntab = @mysql_num_fields($list_fields); //NOMBRE DE CHAMPS
if($nbcolumntab>0){ //SI ON TROUVE AU MOINS UN CHAMPS
$return.="<font face=tahoma size=1>(<br></font>";
for($k=0;$k<$nbcolumntab;$k++){
$return.= "<font face=tahoma size=1>" . mysql_field_name($list_fields, $k) . "
" . SQLLexic(mysql_field_type($list_fields, $k)) . "
(" . mysql_field_len($list_fields, $k) . ")
" . SQLLexic(mysql_field_flags($list_fields, $k)) . "</font>";
if($k<$nbcolumntab-1){ $return.="<font face=tahoma size=1>,<br></font>";}
}
$return.="<font face=tahoma size=1>);<br></font>";
} else {
$return.="<font face=tahoma size=1 color=red>[No fields]</font>";
}
}
}
return $return;
}
function SQLLexic($chaine){
$chaine = str_replace( "string" ,"VARCHAR" ,$chaine);
$chaine = str_replace( "int" ,"INTEGER" ,$chaine);
$chaine = str_replace( "not_null" ,"NOT NULL" ,$chaine);
$chaine = str_replace( "primary_key" ,"PRIMARY KEY" ,$chaine);
$chaine = str_replace( "auto_increment" ,"AUTO_INCREMENT" ,$chaine);
$chaine = str_replace( "unsigned" ,"UNSIGNED" ,$chaine);
$chaine = str_replace( "real" ,"FLOAT" ,$chaine);
$chaine = str_replace( "timestamp" ,"TIMESTAMP" ,$chaine);
$chaine = str_replace( "blob" ,"BLOB" ,$chaine);
$chaine = str_replace( "binary" ,"BINARY" ,$chaine);
$chaine = str_replace( "enum" ,"" ,$chaine);
$chaine = str_replace( "multiple_key" ,"" ,$chaine);
$chaine = str_replace( "unique_key" ,"" ,$chaine);
$chaine = str_replace( "zerofill" ,"" ,$chaine);
return "{$chaine}";
}
?>
Conclusion
Chacun des algorithme est placé dans un fichier individuel.
Le MLD sur MySQL ne se fait que via des commandes SQL propres a la base MySQL.
Le MLD sur SQLite se fait en partie par le lecture de tables cachées contenant les informations de la base.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
"analyse" de site [ par Evangun ]
Bonjour à tous,ce n'est pas du php mais je me demandais s'il y avait un logiciel qui par exemple pouvait parcourir un site (en local chez moi ce
analyse lexicale, comment faire? [ par selim68 ]
Bonjour,J'aimerai définir des criticités à des produits de ma base de données, ceux-ci seront définit par l'utilisateur, exemple de saisie possible:
formulaire analyse texte [ par lacomm ]
HelloJe dois construire un site qui fonctionne comme ceci1) utilisateur doit être reconnu2) utilisateur répond à quelques questions Aimez-vous
analyse d'un fichier text en php [ par fattouch_squall ]
Svp je voulé savoir sil ya pa une possibilité afin extraire des donnée particuliere dun contenu dun fichier text en php, car je veu en créer une inter
Numéroter un classement [ par pronostic ]
Bonjour à tous. Malgré mes recherches et mes tentatives, je n'arrive pas à mes fins. Je souhaiterais afficher un classement du meilleur pronostiqueur
Analyse du matériel [ par krz_yama ]
Bonsoir,Voila dans le cadre d'un jeu php je cherche une solution afin d'éviter les "multicomptes", le filtrage d'ip n'étant évidement pas efficace, ca
Analyse d'une url [ par ddolku ]
Bonjour ,Je désire ajouter en php une analyse d'url sur ma base de donnée.j'ai des url a analysé qui sont soit , 200 OK ou en 302 Found .je souhaite f
Outil Web d'analyse de texte [ par tecap ]
Bonjour, Je recherche un outil d'analyse de texte intégrable à un site Web (PHP, HTML), ou alors un Web service que je pourrais utiliser pour analyser
Créer un système d'analyse de simples codes sources PHP [ par david11001 ]
Salut !Je désirerai donner la possibilité à mes membres de faire éxécuter par mon site un petit script php.Celui-ci ne doit se composer que de variabl
Analyse contenu Site Web [ par kaspersky ]
Bonjour à tous, Je viens vous faire part d'un projet que je souhaite réaliser, et je souhaiterai avoir vos réactions,remarques et pour ce qui ont e
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|