Forum Clubic

Script php/MySql importation exportation

Bonjour,
Dans le cadre de mon stage, je suis chargé d’amméliorer un logiciel open source. Je dois réaliser un script php qui permetra de copier quelques informations d’une base de donné MYSQL (( contenue dans GLPI pour les connaisseurs^^)) vers une autre base de donné aussi en mysql .

apres quelques reflexions:

connection à la premiere base
lecture des infos
connection a lma deuxieme base
écriture des infos
deconnexion des deux bases

est ce une bonne idée ? comment la réaliser ? faut il obligatoirement passer par des fichier csv?

d’avance merci

un tit devellopeur perdu

Tu peux passer par des ordres SQL.
N’y a-t-il pas des outils MySQL d’import/export (fourni avec le logiciel) ? (Il me semble que oui)

vu qu’il doit faire un script, il doit se passer de logiciels.

Si tu fais ton script, c’est grosso modo ça :

désactiver la limite de temps (set_time_limit)
connexion serveur 1 + sélection bdd
connexion serveur 2 + sélection bdd
recup liste des tables
désactivation intégrité référentielle sur le serveur 2 (obligatoire, y a des requêtes pour, inspire toi de phpmyadmin & consorts)
pour chaque table:

  1. créer la structure de base sur le serveur 2, sans les clef étrangères
  2. importer ce qu’il y a dans la table sur le serveur 1 vers le serveur 2
    pour chaque tables (elles sont crées sur le serveur 2)
  3. importer les clefs étrangères sur le serveur 2
    réactiver l’intégrité référentielle sur le serveur 2

Dans mon exemple, tu ne passes jamais par des fichiers CVS, mais par du SQL (en utilisant des requêtes préparées)

Théoriquement, ça peut se faire en deux journées (de 8/9h) si tu es doué, un peu plus sinon. C’est surtout un bon apprentissage, et si tu utilises PDO (http://fr2.php.net/manual/en/book.pdo.php) tu pourras faire quelque chose de plus facilement réutilisable sur un autre SGBD.

Maintenant, je ne dis pas qu’il n’existe pas déjà de tels outils, et tu devrais vérifier cela avant tout, sauf si c’est obligé pour toi de le faire.

Bien sûr, il se peut qu’il y ait une véritable fonction mysql qui fasse cela (j’en doute).

Perso, je trouve que c’est un très bon exercice pour apprendre à utiliser php, et manipuler les BDD (je générifie, car mySQL c’est mimi, mais il n’y a pas que cela). Tu peux même aller plus loin dans le raisonnement en fabriquant un outil multi BDD.