2009-08-17 12 views
1

Comment utiliser php pour créer une base de données avec table et informations à l'aide d'un fichier de sauvegarde?Comment utiliser php pour créer une base de données avec table et info en utilisant un fichier de sauvegarde?

jusqu'à présent mon code est

<? 
header("content-type:text/plain"); 

$serv= mysql_connect('localhost', 'root', 'xxxx'); 

if($serv){ 
     wText("Server connection created"); 
} 
else{ 
    wText("Server connection failed"); 

} 

$sql ="CREATE DATABASE tf2faq"; 

if(@mysql_query($sql,$serv)){ 

    wText("Database tf2faq created"); 
} 
else{wText("Database tf2faq create failed");} 




$sql = 'CREATE TABLE `tf2faq`.`loadoutitems` (`item` TEXT NULL, `class` TEXT NULL, `type` TEXT NULL, `replaces` TEXT NULL, `itempos` TEXT NULL, `modpos` TEXT NULL, `modneg` TEXT NULL, `imgurl` TEXT NULL, `notes` TEXT NULL) ENGINE = MyISAM'; 
mysql_query($sql,$serv); 
if(@mysql_query($sql,$serv)){ 
wText("table loadoutitems created"); 
} 
else{ 
wText("table loadoutitems create failed"); 

} 

$sql="LOAD DATA INFILE 'loadoutitmsfx.csv' INTO TABLE `tf2faq`.'loadoutitems'"; 

if(@mysql_query($sql,$serv)){ 
wText("Data Load Passed"); 
} 
else{ 
wText("Data Load Failed"); 
} 



function wText($txt){ 
    echo $txt . "\n"; 
} 
?> 

échoue sur la ligne LOAD DATA, ne sais pas pourquoi.

modifier dans mon code j'ai supprimé le « @ » là-bas et il dit encore la charge du fichier a échoué

+2

Je sais pourquoi vous «ne savez pas pourquoi», car vous utilisez e rror supprime l'opérateur @. Retirez-le et regardez le message d'erreur/code de mysql_query. – Sergei

+0

je vais certainement faire – Jim

Répondre

0

Où se trouve loadoutitmsfx.csv? Le fichier doit être sur l'ordinateur sur lequel la base de données est en cours d'exécution. Vous pourriez essayer de spécifier le chemin complet. Quelque chose comme "/home/jim/loadoutitmsfx.csv".

Le nombre de colonnes de votre fichier csv et la table correspondent-ils?

Vous avez probablement besoin de spécifier d'autres options pour que csv fonctionne.

LOAD DATA INFILE '/home/jim/loadoutitmsfx.csv' dans la table tf2faq.loadoutitems FIELDS TERMINATED BY '' ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY '\ r \ n'

en outre ne pas utiliser @.

+0

le script sera téléchargé sur le serveur web qui est aussi la base de données comp, alors pensez à cela comme une paire appariée, la façon dont je l'ai fait était d'appeler le php realpath() et remplacer le \ avec a \\ donc votre ligne LOAD DATA INFILE reapath (emplacement du fichier) .replace ("\", "\\") INTO TABLE tf2faq.loadoutitems CHAMPS TERMINES PAR ',' ENCLOS PAR '' 'ESCAPES PAR' \ 'LIGNES TERMINES BY '\ r \ n' J'ai utilisé l'héritage par exemple comme je sais pas le bon code, mais s'il y avait un "@" ou pas il n'a pas jeté d'erreur donc j'ai dû utiliser echo mysql_error() pour obtenir l'erreur cela aurait dû être jeté, votre importation est correcte – Jim

0

LOAD DATA INFILE est désactivé sur la plupart des serveurs MySQL, car il ne fonctionne pas avec les serveurs de bases de données à distance et nécessite le fichier de données pour être lisible par le serveur de base de données. parser le fichier vous-même et générer des instructions SQL

Questions connexes