Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 19/08/2006, 22h32   #1
Invité régulier
 
Inscription : janvier 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 18
Points : 7
Points : 7
Par défaut [SQL] Problème exécution sql pour insertion fichier csv

Bonjour à vous,

Je cherche à exécuter une requête d'insertion d'un fichier csv avec php mais je galère. Voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$server = 'localhost';
$login = 'user';
$pass = 'pass';
$db= 'base';
 
$link = mysqli_connect($server, $login, $pass, $db);
 
$sql = "LOAD DATA LOCAL INFILE 'C:\\ToImport\\temp.csv' INTO TABLE t_carnetcommande FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'";
 
$result = mysqli_query($link, $sql) or trigger_error('Requête invalide', E_USER_ERROR);
J'ai visiblement un problème dans ma requête.

Pourtant, elle fonctionne très bien tel quel par un copier-coller dans l'exécuteur de requête de phpmyadmin. J'ai aussi vérifier ma connection à la base de données: pas de problème de ce côté là non plus car j'arrive à exécuter d'autres requêtes.

Pouvez-vous s'il vous plaît m'aider à trouver ce qui ne va pas dans ma requête?

Merci d'avance.

A+
Kyvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2006, 15h44   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Tu as un message d'erreur ?
La connexion est-elle bien effectuée ?
J'ai remarqué qu'il y avait cette possibilité :
Code :
1
2
3
4
5
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Echec de la connexion : %s\n", mysqli_connect_error());
    exit();
}
Sinon mysqli est installé (c'est la question la plus importante )
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2006, 16h00   #3
Invité régulier
 
Inscription : janvier 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 18
Points : 7
Points : 7
Bonjour,

Mon message d'erreur c'est que ma requête n'arrive pas à être exécuter. C'est uniquement là que ça bloque.

Sinon, je n'ai aucun problème de connexion avec mysqli (qui est bien installé) puisque je peux faire des requêtes SELECT, TRUNCATE et autres sans problème avec cette méthode.

J'ai également vérifié que j'avais tous les droits nécessaires pour importer un fichier avec LOAD DATA INFILE. Pas de problème aussi.

Toutes mes requêtes fonctionnent sauf cette requête d'insertion du fichier csv.

Une idée?

A+
Kyvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2006, 17h25   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Pourquoi ne pas faire à l'ancienne ?? comme ceci : Comment extraire les données d'un fichier CSV ? et en rajoutant le insert

moi j'utilise pas ce genre de requête
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2006, 17h47   #5
Invité régulier
 
Inscription : janvier 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 18
Points : 7
Points : 7
Faire cela ne me sert à rien!

Mon but n'est pas d'extraire les données du csv... mais de tout insérer dans la base de données.

Mon fichier csv fait plus de 10 000 lignes, je me vois mal faire 10 000 requêtes INSERT (!!!) à chaque fois par une boucle qui va analyser ligne par ligne le csv. De plus, ce fichier csv est généré tous les jours par notre ERP et il faut intégrer ces valeurs tous les jours pour en tirer des données statistiques.

D'où mon idée d'insérer le contenu du fichier en une seule fois par une requête LOAD DATA INFILE sinon bonjour les temps de traitement...

A+
Kyvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h36.


 
 
 
 
Partenaires

Hébergement Web