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

ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 9 déc. 2008 à 23:11 - Dernière réponse : knostra 149 Messages postés jeudi 12 avril 2007Date d'inscription 13 décembre 2013 Dernière intervention
- 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

coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 10 déc. 2008 à 20:03
+3
Utile
en php5, tu peux tenter copy directement.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de coucou747
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 10 déc. 2008 à 20:18
+3
Utile
pour recuperer le contenu du fichier : file_get_contents
pour l'inserrer dans la db, c'est simplement une requete.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de coucou747
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 10 déc. 2008 à 20:49
+3
Utile
set_time_limit(0);

clique sur reponse acceptee stp.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de coucou747
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 10 déc. 2008 à 09:06
0
Utile
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
ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 10 déc. 2008 à 19:56
0
Utile
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
ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 10 déc. 2008 à 20:06
0
Utile
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
ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 10 déc. 2008 à 20:10
0
Utile
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
ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 10 déc. 2008 à 20:28
0
Utile
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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 10 déc. 2008 à 20:33
0
Utile
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
ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 10 déc. 2008 à 20:37
0
Utile
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
ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 10 déc. 2008 à 20:45
0
Utile
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
ludovicanceaux 441 Messages postés mardi 21 octobre 2003Date d'inscription 6 mai 2010 Dernière intervention - 10 déc. 2008 à 20:55
0
Utile
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
knostra 149 Messages postés jeudi 12 avril 2007Date d'inscription 13 décembre 2013 Dernière intervention - 3 avril 2009 à 17:58
0
Utile
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.