Upload d'un fichier sql et le mettre ds la base [Résolu]

Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
- - Dernière réponse : knostra
Messages postés
149
Date d'inscription
jeudi 12 avril 2007
Dernière intervention
13 décembre 2013
- 3 avril 2009 à 17:58
Salut à tous,

J'ai fais des recherches depuis cette aprem mais je ne trouve rien!!!!! je suis ss easyphp avec windows "vista évidemment pour arranger les choses" et j'ai un fichier *.sql sur un serveur ftp et je voudrais en PHP le rappatrier ds ma bdd en locale!!

Donc j'ai trouvé ca :
system("wget http://speed.travian.fr/map.sql -O tmp.sql");

mais ca marche sur un serveur FTP, mais quand j'essaye en locale, ca  ne marche pas, savez vous pk "surement parce que c une commande linux"??? et sinon si quelqu'1 à une autre solution pour moi, ca serait cool!!!!!

Merci d'avance
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
33
3
Merci
en php5, tu peux tenter copy directement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
33
3
Merci
pour recuperer le contenu du fichier : file_get_contents
pour l'inserrer dans la db, c'est simplement une requete.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
33
3
Merci
set_time_limit(0);

clique sur reponse acceptee stp.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
33
0
Merci
salut

sous windows, ca ne peut pas fonctionner.

sinon, tu peux tenter d'utiliser la librairie CURL (ca permet de faire des requetes HTTP facilement)

exemple d'utilisation ici : http://www.phpcs.com/codes/PROXY-HTTP-SAUVEZ-VOS-VIDEOS-PREFEREES_47616.aspx
Commenter la réponse de coucou747
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
1
0
Merci
C bien ce que je pensais!!!! c une balise linux, merde, lolllllllll je ne connais pas du tout la librairie curl, c'est quand même bizarre qu'on puisse créer des fichiers .sql mais rien n'est prévu à l'aide d'un script php de rappatrier ca ds la base en une ligne de code, mdr!!!

je suis en train de tester à l'aide de fopen, penses tu que ce sit une bonne idée?? est ce fiable??
Commenter la réponse de ludovicanceaux
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
1
0
Merci
Ah oui copy, j'y avais pas pensé, je vais testé ca de suite ^^ mais qu'en ai t'il de l'insrtion ds la bdd??? je suis obligé de l'ouvrir ensuite avec fopen ou je peux faire autrement???

le fichier que je veux insérer c'est celui là :
http://speed.travian.fr/map.sql
Commenter la réponse de ludovicanceaux
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
1
0
Merci
C bon, j'ai réussi à le rappatrier à l'aide de copy, c'est déjà ca, mdr!!!!!! il me reste juste à le réinjecter ds la bdd, lollllll
Commenter la réponse de ludovicanceaux
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
1
0
Merci
Je connais pas cette balise, j'ai donc regarder sur php.net, et ca me donnerait ca, mais ca ne marche pas, hum, bizarre!!!

$mysqlhost = 'localhost';
$mysqluser = 'root';
$mysqlpass = '';
$mysqldb = 'travian';

$db = @mysql_connect($mysqlhost, $mysqluser, $mysqlpass) OR die('Can not connect to DB-Server!');
$db_select = @mysql_select_db($mysqldb) OR die('Can not select DB!');

$file = 'http://speed.travian.fr/map.sql';
$newfile = 'data/map.sql';

if (!copy($file, $newfile)) {
    echo "La copie du fichier $file n'a pas réussi...\n";
}else{
    echo "La copie du fichier $file a réussi...\n";
    $read_file_sql=file_get_contents($newfile);
    $result = mysql_query($read_file_sql);
    echo $result;
    unlink($newfile);
}
Commenter la réponse de ludovicanceaux
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
33
0
Merci
en fait, mysql_query n'effectue qu'une seule requete.

(tu peux faire un file_get_contents sur ton $file directement hein)

faut commencer par separer tes requetes avant de pouvoir faire ca.
Commenter la réponse de coucou747
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
1
0
Merci
Oui effectivement je viens de le voir à l'instant, mdr!!!!!! arf il faut parser les données!! je deteste ca!!, mdr, bon je vais essayer de me débrouiller, merci!!!!

je ne connaissais pas toutes les fonctions que tu m'as proposé :)
Commenter la réponse de ludovicanceaux
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
1
0
Merci
mince, j'ai réussi en partie, le seul truc, c un truc que je redoutais avec + de 60 000 entrées, ca me met Maximum execution time of 30 seconds, mdr!!!!!!!!!!

if (!copy($file, $newfile)) {
    echo "La copie du fichier $file n'a pas réussi...\n";
}else{
    echo "La copie du fichier $file a réussi...\n";
    $read_file_sql=file_get_contents($newfile);
    if($read_file_sql){
        $split_bdd=explode(';',$read_file_sql);
        for($i=0;$i<count($split_bdd);$i++){
            mysql_query($split_bdd[$i]);
        }
        /*$result = mysql_query($read_file_sql);
        echo $result;*/
        unlink($newfile);
    }
}
Commenter la réponse de ludovicanceaux
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Dernière intervention
6 mai 2010
1
0
Merci
merci bcp!!!!!! je ne connaissais pas cette fonction non +!!!!!

merci, ca marche niquel, 70000 entrées ds la bdd, et ca pour sur 15 serveurs différents, ca va vraiment me simplifier la vie, mdr
Commenter la réponse de ludovicanceaux
Messages postés
149
Date d'inscription
jeudi 12 avril 2007
Dernière intervention
13 décembre 2013
3
0
Merci
et tu voudrais pas nous mettre ton code ici?

stp
Commenter la réponse de knostra

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.