antoinesoler
Messages postés13Date d'inscriptionjeudi 7 octobre 2010StatutMembreDernière intervention24 décembre 2011
-
18 août 2011 à 18:45
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 2013
-
18 août 2011 à 22:10
Bonjour a tous,
je rencontre un problème lors de l’exécution d'une requête sql utilisant un lien vers un fichier.
Je m'explique : je souhaite mettre à jour une bdd grâce a un fichier excel importé depuis une interface administrateur. Pour cela l'utilisateur upload son fichier texte (excel enregistré en txt separateur tab) qui est enregistré a un certain endroit. Le script va alors vider la table puis mettre à jour la bdd grâce au fichier texte. Le problème est que en local le script marche mais en ligne le lien pose problème : la table se vide mais la maj ne s'effectue pas... Je cherche désespérément une explication et surtout une solution. Voici les deux lignes en question :
$reponse = $bdd->query('TRUNCATE table infos'); //ligne qui marche
$reponse = $bdd->query('LOAD DATA INFILE "../maj_bdd.txt" INTO TABLE infos'); //marche pas
si quelqu'un a une solution je suis preneur!
A voir également:
Probleme lien relatif/lien absolu pour requete sql
Sauf à faire un truc pas clean (du style un global dans la fonction qui suit), ça ne sert à rien ... puisque tu ne l'utilises pas.
L'objet PDO créer reste donc avec ses options par défaut, donc pas d'erreur affichée.
Ca marche en local, OK, mais entre le local et le distant il y a sans doute un monde !!
OS ?
versions (apache, mysql, PHP) ?
serveur web et SQL sur la même machine ?
droits ?
... la liste pourrait être très longue.
Ce n'est pas parce que ça fonctionne en local que ça sera le cas ailleurs, surtout si tu es en mutualisé.
Et oui le fichier est bien sur le serveur. Le chemin est précisé dans la requête donc ca devrait marcher.
OK, mais sur quel serveur ?
Je serai surpris que le serveur mysql soit sur la même machine que le serveur web.
Si tu es en mutualisé, je serai surpris que tu ai accès à l'arborescence du serveur mysql.
En mutualisé je doute fort que cette commande passe.
Menfin, essais de voir tout de même la réponse que te fait le serveur en affichant l'exception (cf PDO::setAttribute)
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 18 août 2011 à 19:43
Ca m'étonne qu'il n'y ait pas d'erreur de retournée.
Qu'utilises tu comme méthode pour accéder à ta DB ? (PDO ?, ..)
L'affichage des erreurs est il activé ?
Le fichier texte copié se trouve dans un dossier contenant les pages du site..
Ca ne m'en dit pas beaucoup plus.
Ce fichier se trouve t il sur le serveur de base de données ?
Si oui dans quel répertoire ?
Si non, ... le serveur mysql n'est pas prêt de le trouver
Tu peux potentiellement essayer avec mysqlimport ou avec l'option "LOCAL" de LOAD DATA ... mais je ne suis pas sur que ça soit gagné d'avance.
Reste la possibilité de faire des requêtes INSERT.
Cordialement,
Kohntark -
Vous n’avez pas trouvé la réponse que vous recherchez ?