begin process at 2012 05 31 14:46:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Requète LOAD DATA sql / CSV (importation,exportation)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Requète LOAD DATA sql / CSV (importation,exportation)

mardi 14 juillet 2009 à 12:09:40 | Requète LOAD DATA sql / CSV (importation,exportation)

onylink

Bonjour,
 
J'ai un problème pour utiliser la méthode LOAD DATA, qui prend en fichier type CSV et le découpe et rentre automatiquement dans la BDD (mySQL 5).
En faite je pense que le problème vient plus du fait qu'on ne doit pas récupérer comme il faut l'adresse mémoire du fichier CSV.
Quand je test dans ma page web avec un fichier que j'ai sur mon pc, celà marche. (script si dessous)
<?php
(connection à la bdd)
mysql_query("LOAD DATA INFILE '../../../www/fichier.csv'INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;");
?>
 
Par contre quand j'importe le fichier à partir d'un formulaire ça ne marche plus. J'ai fait des tests sur l'adresse mémoire du fichier. Je trouve le dossier Temp, mais je n'arrive pas (à priori) à lui passé correctement en paramètre.
 
Pour importer le fichier j'utilise le langage html. En spécifiant bien qu'il s'agit d'un fichier.
 
<formenctype="multipart/form-data" action="enter_DB_test.php" method="post" >
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Envoyez ce fichier :<inputname="file" type="file" />
<inputtype="submit" value="Envoyer le fichier" />
 
Ensuite je le récupère dans une autre page, ou je test en premier lieu la lecture puis j'affiche le contenu..
<?php
(connection à la bdd)
Je vérifie si le fichier existe
if (isset($_FILES['file'])) {
$file = $_FILES['file']['tmp_name'];
 
Je parcours le fichier pour en afficher le contenu (tout cette opération marche bien)
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
while (($data = fgetcsv($handle, 4096, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
 
Ici plutot que d'utiliser un INSERT INTO j'essai de passer en paramètre le fichier CSV à la méthode LOAD DATA.
mysql_query( "LOAD DATA INFILE '$file' INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;" );
}
?>
 
Mais il ne se passe rien.. Je n'ai pas de retour d'erreur où quoi que ce soit d'autre.. Donc je ne sais plus ou faire les controles.

Si quelqu'un peut m'aider ça serai magique. Vu que je bloque dessus depuis une semaine.
Si je n'utilise pas la méthode INSERT INTO c'est car elle est moins "généraliste" et moins rapide.

Merci
Bien Cordialement,
Onylink.


Cette discussion est classée dans : fichier, file, data, load, csv


Répondre à ce message

Sujets en rapport avec ce message

explode fichier.csv [ par GregL ] Hello , Je ne connais pas grand chose au PHP et il y'a quelque chose qui m'échappe lorsque que je veux ressortir chaque chaîne séparé par un point vi problème avec fichier CSV [ par xris ] Bonjour, Je sui perdu : j'utilise la fonction fgetcsv de la façon suivante : $row = 1; $handle = fopen("data.csv", "rb"); while (($data = fgetcsv($ fichier csv ok sur serveur mais différent quand on le télécharge [ par maelob ] Bonjour à tous,Désolée le titre du sujet est pas très parlant mais j'ai pas trouvé mieux...Bon je recupere des données dans ma base pour crée un fichi Problème import CSV Mysql [ par shadowfox666 ] Bonjour,Je dois réaliser un import de fichier de fichier CSV assez important (700 000 lignes)Et je suis soumis à une contrainte assez ennuyeuse.Le cli csv vers base de donnée [ par fraisa1985 ] Salut a tous, je veux faire une actualisation de ma base de donnée à partir d'une fichier csv. Ma probléme que le fichier csv contient des données pl LOAD DATA INFILE [ par Ninie972 ] bonjour, J'aimerais savoir si c'est possible de faire un load data infile (importation de fichier) en spécifiant à la fois le nom des colonnes du fich fichier csv [ par mbik ] Bonjour, j'ai besoin de concatener plusieurs fichiers csv. On a donné une fonction qui transforme les fichiers en chaines et les mets dans une variabl PHP avec interface R [ par belzebate ] Bonjour à tous et à toutes. Je suis étudiant en L3 MIAGE et je suis actuellement un stage pour valider mon année. Mon projet est de créer une platefo impossible d'ouvrir fichier csv dans page.php [ par tif27940 ] Bonjour, j'ai un programme qui doit ouvrir un fichier vcsv mais voila il ne veut pas l'ouvrir alors que la page et le fichier csv sont dans le même d lier une image a un utilisateur [ par msi079 ] salut . j'ai une table users .et je veux que chaques users puisse enregistrer son image (phpto) a lui . voici mon code qui marche pas . je veux bien


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales