Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2006, 16h44   #1
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 96
Points : 32
Points : 32
Par défaut [LOAD DATA] mise à jour de fichier texte

Bonjour,
Je voudrais faire un script permettant de remplacer le contenu d'une table avec un fichier text (je recoit un fichier texte de mise à jours par semaine)
J'utilise donc la fonction LOAD DATA mais ça ne fonctionne pas:

Mon code fichier maj1.php
Code :
1
2
3
4
5
6
7
8
 
$req=mysql_query(LOAD DATA LOCAL INFILE 'PRICE.txt' REPLACE INTO TABLE 'infoone_tbl' 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n') OR die ('Erreur SQL !');
 
echo 'mise à jours effectuée !';

Message erreur:
Code :
1
2
 
Parse error: syntax error, unexpected T_STRING IN /home/infoo/public_html/maj1.php ON line 18

Merci
freija est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 18h39   #2
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut,

C'est une erreur PHP et non MySQL.

Dans ton code, il y a notamment un problème avec mysql_query() dont le paramètre doit être une chaîne. Il va donc falloir y rajouter des guillemets.
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2006, 09h16   #3
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 96
Points : 32
Points : 32
où dois-je mettre les guillemets?
Et mon fichier PRICE.txt doit bien etre sur le serveur local au meme niveau que ma page php?
merci
freija est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2006, 10h04   #4
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 96
Points : 32
Points : 32
J'ai trouvé où mettre les guillemets

Code :
1
2
3
4
5
6
7
8
$req=mysql_query("LOAD DATA LOCAL INFILE 'PRICE.txt' REPLACE INTO TABLE 'infoone_tbl' 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'") or die ('Erreur SQL !');

echo 'mise à jours effectuée !';
Mais il ne reconnait pas la syntax ESCAPED BY '\\'

Merci pour ta réponse biglo
freija est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2006, 10h52   #5
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Citation:
Envoyé par freija
Mais il ne reconnait pas la syntax ESCAPED BY '\\'
Il faut en mettre 2 de plus car \ est le caractère d'échappement en PHP :

Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2006, 14h07   #6
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 96
Points : 32
Points : 32
ça ne fonctionne toujours pas !
freija est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2006, 14h14   #7
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Faut donner un peu plus de détails (message d'erreur, comportement, ...)

Mais il y a sûrement d'autres erreurs d'échappement :

Code :
1
2
3
4
5
$req=mysql_query("LOAD DATA LOCAL INFILE 'PRICE.txt' REPLACE INTO TABLE infoone_tbl
FIELDS TERMINATED BY ','
ENCLOSED BY '\"'
ESCAPED BY '\\\\'
LINES TERMINATED BY '\\r\\n'") or die ('Erreur SQL !');
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h11.


 
 
 
 
Partenaires

Hébergement Web