Load data infile et chemin

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Load data infile et chemin

Re: Load data infile et chemin

par fabulon » 09 mars 2011, 15:15

Niquel, t'es un chef!
=D>

Re: Load data infile et chemin

par stealth35 » 09 mars 2011, 15:09

utilise array_map avant
$data = array_map('mysql_real_escape_string', $data);
utilise sprintf pour faire tes requêtes
et si possible arrête d'utiliser cette vielle extension et utilise mysqli ou PDO

Re: Load data infile et chemin

par fabulon » 09 mars 2011, 15:07

Je dois pas m'y prendre comme il faut:
$requete = "INSERT INTO magret (classe,nom,prenom,login,mdp,uid_ent) VALUES ('$data[0]','".mysql_real_escape_string($data[4])."','$data[2]','$data[3]','$data[4]','$data[5]')";
Je n'ai plus d'erreur, mais ça m'a laissé ma colonne vide!

Re: Load data infile et chemin

par xTG » 09 mars 2011, 13:45

Re: Load data infile et chemin

par fabulon » 09 mars 2011, 13:41

Salut.
Je m'y suis remis après qq jours de pause.
Je fais uploader le fichier csv sans souci, et l'import dans la base sql se passe bien, sauf si un champ contient une apostrophe.

Voilà mon code:
$handle = fopen ("./upload/magret.csv","r");
fgetcsv ($handle, 0, ";");
while ($data = fgetcsv ($handle, 0, ";")) {
	$requete = "INSERT INTO magret (classe,nom,prenom,login,mdp,uid_ent) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]')";
	$result = mysql_query($requete) or die(mysql_error()); 
	}
fclose ($handle);
J'ai utilisé une astuce en remplaçant $data[1] = preg_replace('#[\']#', '-', $data[1]);
Ca marche, mais le nom de mon utilisateur n'est plus vraiment le même du coup...

Y a t'il un moyen de contourner le pb d'apostrophe tout en ne modifiant pas les valeurs du champ?

Re: Load data infile et chemin

par stealth35 » 05 mars 2011, 22:55

si il faudra passer par le champs file d'un forumlaire. Tout se fait coté serveur.

Re: Load data infile et chemin

par fabulon » 05 mars 2011, 22:47

Je passais d'abord par un premier php pour uploader le fichier ( avec un formulaire d'encodage multipart/form-data avec un champ de type file ).
D'après ce que je lis sur ton lien, je n'aurais pas à uploader le fichier en dur sur le serveur, simplement à le faire lire, puis (ou en même temps?) l'écrire dans la base sql.

Faut que je me plonge sur cette fonction fgetcsv...

Merci (je reviendrai si je bloque... :wink: )

Re: Load data infile et chemin

par stealth35 » 05 mars 2011, 22:42

arf??? chiotte!
J'aimerai pouvoir ensuite filer mon code à des utilisateurs avec une install guidée...
A moins que je fasse un tuto sur phpmyadmin?

Sinon, y a moyen de faire ça autrement chez Free?
il suffis je faire un petit code PHP pour importer le CSV, utilise fgetcsv

Re: Load data infile et chemin

par fabulon » 05 mars 2011, 22:33

arf??? chiotte!
J'aimerai pouvoir ensuite filer mon code à des utilisateurs avec une install guidée...
A moins que je fasse un tuto sur phpmyadmin?

Sinon, y a moyen de faire ça autrement chez Free?

Re: Load data infile et chemin

par stealth35 » 05 mars 2011, 22:30

Ok!
Je teste demain, et je te dis.

Est-ce que ce sera la même commande en local (wamp) ou en hébergé (free) ?

@+
non chez free tu ne peu pas faire ca

Re: Load data infile et chemin

par fabulon » 05 mars 2011, 22:29

Ok!
Je teste demain, et je te dis.

Est-ce que ce sera la même commande en local (wamp) ou en hébergé (free) ?

@+

Re: Load data infile et chemin

par stealth35 » 05 mars 2011, 22:20

il faut utiliser l'option LOCAL

Load data infile et chemin

par fabulon » 05 mars 2011, 22:15

Bonjour,
Je souhaite importer le contenu d'un csv dans une table.
J'utilise pour cela la fonction load data infile.
Mais, le chemin que je donne n'est pas celui qui est pris en compte.
Apache (ou mysql ?) cherche le fichier dans un dossier data de sql.

Or, je voudrais qu'il cherche mon fichier dans le dossier situé à côté du fichier php qui execute le script.
Is it possible?

Merci!