Facebook LinkedIn SourceForge Twitter RSS LastFM
logologo

Plugin phpMyAdmin : exporter des tables en PHP Array

Geoffray Warnants|10/06/2009|8 commentaires

Par soucis de performance, il m'arrive de temps en temps d'exporter le contenu d'une table MySQL pour en créer un tableau PHP associatif. Disposant ainsi des données en mémoire, ceci me permet, par exemple lors d'une requête de sélection, d'épargner une jointure avec cette table. Bien entendu, ceci n'est réellement intéressant que pour les tables de petite taille (table de devises, de pays, etc...)

Malgré la petite taille de ces tables, la procédure pour générer le code du tableau est généralement fastidieuse à moins de disposer d'un petit script "fait maison" sous la main.

J'ai donc décidé de publier un modeste outil utilisable sous la forme d'un plugin pour phpMyAdmin. Il ajoute la fonctionnalité désirée (cf. checkbox "PHP Array") à la liste des formats disponibles pour l'export des bases de données.

exporter tables MySQL en tableau PHP

Pour l'installation, rien de plus simple. Il suffit de télécharger le plugin ici et d'extraire le fichier PHP dans le répertoire phpMyAdmin/libraries/export/.

Par contre, le script étant toujours en version beta, tout rapport de bug ou suggestion d'amélioration sera vivement apprécié. Merci d'avance !

<<< Retour

Vos commentaires

4 commentaires postés

Andreas
27/01/2013 10:33Posté par Andreas
(pardon, je né parlé beaucoup francais)

Thanks for providing the PHP export function!

It was the best choice for us, as we needed actually JSON, and the format of PHP is very close. I just needed to added some RegExp work to convert to JSON.

Doing this, I found found a bug that most likely effects all exports with certain data.

The export file said: version 0.2b. Sorry, if this already has been solved - I could not update the myPhpAdmin to check if it is.

When deciding whether exporting string or number, the decision is made on base of what
is_numeric() returns for the actual data.

Unfortunately, data is identified as numeric, even if it can't be represented by float exactly:
A telephone number like 0721.123456 is identified as numeric. The export code generates to
=>0721.123456
instead of
=>'0721.123456'
which causes information loss (in best case the leading 0, in worst case the import parser does not accept a 0 at the beginning of float)

Would be great to have this bug fixed in future versions.

Btw.: it would be very easy to provide JSON export on base of your script. Since I'm not a PHP export, I'd rather not provide this to the community. But maybe you like. Would be great, too!

Thanks
Jonathan
30/09/2009 18:34Posté par Jonathan
Génial, dire que j'ai passer des heures a remanipuler mes bases de données pour facilement les exploiter, faudrait serieusement le proposer à  phpmyadmin,

en tout cas merci je reviendrai :)
Geoffray
04/07/2009 23:24Posté par Geoffray
Merci pour la remarque patron ;)
La version 0.2b corrige désormais ce problème.
christophe
30/06/2009 15:29Posté par christophe
Une table qui exportée en SQL donne :

INSERT INTO `geof` (`id`, `xx`, `n`) VALUES
(1, 'toto', 1),
(2, 'gg', NULL),
(3, 'aaa', NULL),
(4, 'pioioi', 2);

donnera avec le plug-in PHP-Array :

$geof = array(
array('id'=>1,'xx'=>'toto','n'=>1),
array('id'=>2,'xx'=>'gg',),
array('id'=>3,'xx'=>'aaa',),
array('id'=>4,'xx'=>'pioioi','n'=>2)
);

Ce qui génère une erreur de syntaxe.

Merci de corriger asap.

Réagir à cet article

*


(Ne sera pas publiée, servira uniquement à afficher votre gravatar)


(Lien en dur et dofollow)

zend framework