Bonjour,
Je souhaiterais exporter une table de ma base de données dans un fichier .csv pour ensuite l'importer dans une autre base de données.
Quelqu'un aurait une idée?
Version imprimable
Bonjour,
Je souhaiterais exporter une table de ma base de données dans un fichier .csv pour ensuite l'importer dans une autre base de données.
Quelqu'un aurait une idée?
Exemple de création d'un csv en php :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php require_once("inc/fonctions.php"); require("class/offre.class.php"); require("class/article.class.php"); require("class/article_media.class.php"); header("Content-Type: application/csv-tab-delimited-table; charset=ISO-8859-1"); header("Content-disposition: filename=offres_".date("d")."".date("m")."".date("Y").".csv"); $str=""; $liste_offre = Offre::getAll(); foreach($liste_offre as $offre) { $str.=$offre['libelle_ss_famille_offre'].";".$offre['libelle_regies_article'].";".$offre['libelle_compta_article'].";".$offre['compte_famille_article']."\n"; $liste_article=Article::getAll($offre['id_famille_article']); foreach($liste_article as $article) { if($article['media_article'] == 0) { $leMedia = "Aucun"; } else { $leMedia = article_media::getLibelle($article['media_article']); } $str.=$article['libelle_article'].";".$article['designation_article'].";".$article['pu_article'].";".$article['libelle_mode_article'].";".$article['duree_article'].";".$article['type'].";".$leMedia.";"; if($article['revision_article'] == 0) { $str .= "Non"; } elseif($article['revision_article'] == 1) { $str .= "1er Janvier"; } else { $str .= "1er Juillet"; } $str .= "\n"; } $str.="\n"; } echo $str; ?>
Cette façon de faire ne me parle pas trop, j'aurais plutôt tendance a vouloir me connecter au préalable à ma base de données, d'ouvrir le fichier csv (le créer), de faire la requête ($req="SELECT * FROM ma_table) et d'écrire tout dans le fichier csv.
Je pensais utiliser les fonction "fopen()", "fwrite()"... pour la gestion du fichier mais je ne sait pas comment m'y prendre!
Help!
Quel SGBD ? MySQL dispose des instructions LOAD INTO qui permet d'exporter le contenu d'une table dans un fichier CSV.
Bref cela tient en une requête.
question pourquoi PHP 4 ? t'es chez quel hébergeur ?
J'utilise phpMyAdmin.
Le serveur sur lequel je travail est sous php4 dc j'utilise php4.
Une solution consiste à définir toi-même la fonction fputcsv qui n'existe pas en PHP4.
:arrow: http://fr.php.net/manual/fr/function.fputcsv.php#47606
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function fputcsv($handle, $row, $fd=',', $quot='"') { $str=''; foreach ($row as $cell) { $cell=str_replace(Array($quot, "\n"), Array($quot.$quot, ''), $cell); if (strchr($cell, $fd)!==FALSE || strchr($cell, $quot)!==FALSE) { $str.=$quot.$cell.$quot.$fd; } else { $str.=$cell.$fd; } } fputs($handle, substr($str, 0, -1)."\n"); return strlen($str); }