mysql_fields_type() et mysql_fields_flags()

Invité
Invité n'ayant pas de compte PHPfrance

28 mai 2005, 23:50

Salut à tous,

Je suis en train d'essayer de créer une application qui permettra d'exporter une base de données en fichier texte, et de la réimporter sur un autre serveur (pour ainsi maintenir à jour mon serveur perso avec les données du serveur web).

Phpmyadmin fait plus ou moins ça, mais il le fait dans un textarea, et le copier-coller ça va bien 5 minutes... Donc j'ai plutôt envie de générer un fichier texte et ensuite, le télécharger. (bon, les fichiers textes sont protégés puisque placés dans un dossier dont on ne peut faire la liste, et qu'ils ont des noms générés aléatoirement). Et puis dès qu'on a exporter sa base du serveur A, et réimportée sur le serveur B, on est libre de supprimer le fichier du serveur A, et ne garder que le header qui permet de garder une petite trace de l'opération dans l'historique.

Donc tout ça marche plutôt pas mal. Mon seul soucis c'est les fonctions "mysql_fields_type()" et "mysql_fields_flags()"...

puisqu'à l'instar de phpmyadmin, mon appli génère un fichier texte rempli de requêtes SQL, je fais appel à ces fonctions pour avoir des informations sur les différentes tables...

Malheureusement, mysql_fields_flags() dit qu'un champ est "not_null" lorsqu'en SQL ça s'écrit "not null". Il sort aussi des "unique_key" et "multiple_key" lorsque je ne sais même pas comment les traduire en "vrai" MySQL !

Idem pour mysql_fields_type() qui va dire qu'un "varchar" est un "string", qu'un "tinytext" ou un "text" est un "blob", et là encore il m'en manque certains...

Ma question est donc la suivante ? Existe-t-il une fonction toute faite pour avoir vraiment ces infos en MySQL, ou bien faut-il jouer du "str_replace()", et auquel cas il me manque la traduction de bon nombre de types de champs et de flags de tables !

Merci d'avoir suivi mon problème, j'espère avoir une réponse :)

Mammouth du PHP | 19672 Messages

29 mai 2005, 00:16

À mon avis, tu n'as pas découvert toutes les subtilités de phpMyAdmin:

Quand tu fais [Exporter] dans PMA, tu as en bas du formulaire une case à cocher "transmettre" qui te génère un fichier texte avec des requêtes SQL valides, donc tu n'y trouveras pas de nto_null mais bien NOT NULL.

Tu peux exporter dans différents formats, .sql, mais aussi csv et d'auters encore, c'est dans la partie gauche du formulaire. Dans la partie droite, tu gères les options et ce que tu veux ou ne veux pas avoir dans le fichier.

Tu peux même avoir un fichier compressé.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

29 mai 2005, 00:24

Aaaaaaaaaaaaaaaaaaaaaaaaaaargh !!!!!!!! :shock: :shock: :shock:
Horreur et stupéfaction !!!

Des heures là-dessus pour rien ! Et mes potes, ces ânes, au lieu de dire : "ah oui, ça va être une bonne idée !", ils pouvaient pas s'y connaitre d'avantage et me dire : "hého coco, refait pas ce qui existe déjà !" .... uuuuuuuh :(

Bon, bin en tous les cas, merci pour cette réponse rapide et efficace :)

Mammouth du PHP | 19672 Messages

29 mai 2005, 00:25

Pas de quoi :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: