|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |||
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
Bonjour cher développeur !
J'utilise actuellement ce script pour charger mes données en vitesse éclaire .. Code :
Citation:
De plus, je voudrais savoir comment ajouter sur chaque ROW un 'ALPHA' ... qui correspondra au monde ... MERCI D'AVANCE ! |
|||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Certainement un manque des droits nécessaires sur la base de ton utilisateur
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Salut
A moment (dans la boucle) il y a ceci : Code :
mysql_query("TRUNCATE TABLE $nomtable"); Essai de rajouter la ressource de la connexion au 1er : Code :
mysql_query("TRUNCATE TABLE $nomtable", $link_stats); Sinon, rajoute des mysql_error() pour savoir quelle est la ligne de code et fonction qui génère cette erreur.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
Merci pour vos réponses !
Ça bloque là : Code :
mysql_query("TRUNCATE TABLE $nomtable", $link_stats); Va falloir qu'on trouve ^^ Je sors le site bientôt |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Je ne vois pas trop.
Est tu certain que lors de la boucle toutes les tables existent ? Faire un "truncate table toto" alors que "toto" n'existerait pas pourrait expliquer le problème. Ceci dit, ça a l'air d'être lié à un problème de droit. Peut être que tu n'as pas les droits suffisants pour exécuter un "truncate table" (juste des droits pour des insert, update, delete). Essai de voir avec un SHOW PRIVILEGES.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
J'ai l'impression que c'est le INFILE qu'il n'accepte pas ....
|
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Tu disais que c'était la requête du TRUNCATE qui provoquait l'erreur. Faut savoir. Soit c'est le TRUNCATE, soit c'est le LOAD DATA. Avec un or die() tu dois savoir laquelle exactement provoque l'erreur. Admettons que c'est le LOAD DATA, je remarques que tu indiques des chemins relatifs où ce trouve les fichiers (../mondes/$monde/data/alliances.txt). Peut être faudrait il indiquer un chemin physique complet d'où ils se trouvent sur le disque. Quelque chose comme : /home/user/www/mondes/$monde/data/alliances.txt
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
C'est bien ça !
Il suffit de rechercher "accès denied LOAD DATA INFILE" pour comprendre que c'est une histoire de droit ![]() Vous avez une autre solution ? Vous qui avez toujours des idées de génie
|
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Utilise des fonction (Php) comme dirname(), realpath() pour obtenir ce chemin physique. Le mieux est de définir une seule fois (et une bonne fois pour toute) le chemin physique où se trouve le serveur Web (le www) dans une variable ou une constante. Après ça il suffit de l'exploiter partout où cela est nécessaire.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
Mon hébergeur vient de me dire que la fonction était autorisée
J'ai mis des die partout et j'ai trouvé la ligne à erreur ... Code :
mysql_query($sql,$link_stats) or die('non mis à jour3'.mysql_error()); |
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Si cette erreur concerne LOAD DATA INFILE, fait en sorte de savoir si le fichier existe bien.
Est-ce qu'il n'y aurait pas des restrictions sur ces fichiers ? Quel est leur CHMOD ? Utilises tu un chemin physique absolu (donc complet) comme dit précédemment ? Fais une alternative avec file_exists() par exemple.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#12 |
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
Tu as raison ! C'est bien le path qui est faux !
Je viens de tester chez moi le LOAD DATA INFILE qui me renvoyait directement à la root mysql contrairement au LOAD DATA LOCAL INFILE qui marche parfaitement (mais désactivé sur mon hébergeur ...) Chez moi, j'ai dû faire cela pour que ça marche : Code :
"".$_SERVER['DOCUMENT_ROOT']."/stats/mondes/$monde/data/alliances.txt" |
|
|
00
|
|
|
#13 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Je ne suis pas totalement convaincu que ça ne marcherait pas sur ton hébergeur.
Fais des essai le plus basique qui possible, pour justement éviter toutes sortes de problème annexes. Créer par exemple une table genre "toto" (en local et serveur), avec un champ auto_increment genre "id_toto" et un autre champ "truc". Puis créer un fichier à importer genre toto.sql" avec une requête comme : INSERT INTO toto (truc) VALUE ('machin'); Place le à la racine du serveur Web (généralement c'est www, ou phpdoc, public, etc ...). Puis pour les chemins, mets les "en dur". Tu dois les connaitre. La racine du serveur Web en local si tu est sur Windows devrait être du genre : C:/wamp/www/toto.sql Coté serveur c'est du genre : (ton hébergeur a dû te fournir ce chemin). /home/le_domaine/www/toto.sql Si tu ne le connais pas, suffit de créer un fichier Php à la racine du serveur Web (genre racine.php) avec ce code et pointer sur celui-ci : Code :
Tout ça pour être certain que le chemin soit le bon, requête valide, etc ... Donc de faire des essai avec LOAD DATA INFILE et avec LOAD LOCAL INFILE. Puis espérer qu'une des 2 passe coté serveur. Théoriquement il ne faut pas utiliser LOCAL. Ca marche en local car MySQL/Php/Apache sont tous installés sur la même machine (localhost) et de plus tous les droits.. Normalement LOAD DATA INFILE devrait fonctionner car lié au domaine (host), d'autant plus que ton hébergeur n'aurait pas mis de restriction la dessus. Cependant, et à tout hasard, fait des essais avec PDO ou/et MySQLi qui sont plus récents. Pour ma part les fonctions mysql_*, etc ..., c'est obsolète, car elle est juste maintenue, elle n'évolue plus, vouée même à disparaitre. Mais là sous réserve, pas sûr que ça soit lié à ça.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#14 | ||
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
Merci pour ta réponse !
On va trouver ! Je sais que c'est possible, les opérateurs affirment que ça marche ^^ Voilà le code (ne marche pas encore ^^) Code :
![]() Courage ! On va trouver ! |
||
|
|
00
|
|
|
#15 | ||||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Pourquoi ne fais tu pas des essai plus basiques, histoire de savoir ce qui peu fonctionner ?
C'est quand même absurde voir délirant d'avoir un retour d'erreur disant que la table n'existe pas alors qu'ici la seule et unique chose qu'on souhaite savoir c'est quel est le type de requête qui fonctionnerait. Tu te mets des bâtons dans les roues. ![]() Le minimum syndical serait mettre un chemin physique absolu 100% valide vers un fichier (txt ou sql) qui existe et qui se trouve là où on pointe, et que dans ce fichier on exécute un code SQL 100% valide c'est à dire qui ne provoquera pas d'erreur. Au final 1 seule requête SQL suffit. C'est possible de faire ça ? Quelque chose comme ceci suffirait : Code :
Pour ma part, créer un tableau pour après boucler on s'en fiche pas mal. Faire une 1er requête comme TRUNCATE, ça aussi on s'en fiche vraiment. Code :
Si l'élément du tableau "Url_Fichier" provoque une erreur ça na va pas provoquer une erreur coté MySQL mais une erreur de Php. Appeler mysql_error() ici n'a pas de sens. Si le but est de tester la présence du fichier dont le chemin est contenu dans "Url_Fichier", ça se fait comme ceci : Code :
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||||||
|
|
00
|
|
|
#16 | ||
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
Merci pour ta réponse !
Code :
Et d'après le code ci dessus, le fichier existe bien |
||
|
|
00
|
|
|
#17 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Colle ici l'intégralité du message. As tu essayé de le faire avec PhpMyAdmin ? (importer ce fichier)
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#18 | ||
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#19 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
sans lancer le mysql_query t'as l'erreur ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#20 |
|
Futur Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 135 ![]() |
j'ai l'erreur même dans le phpadmin .. donc
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com