2010-10-22 7 views
0

J'ai essayé le code ci-dessous pour Laoding le fichier en ligne dans drupal dbComment charger des données db à partir csv à l'aide INFILE LOAD DATA dans drupal

$sql = "LOAD DATA INFILE '".db_escape_string($this->file_name). 
     "' INTO TABLE `".$this->table_name. 
     "` FIELDS TERMINATED BY '".db_escape_string($this->field_separate_char). 
     "' OPTIONALLY ENCLOSED BY '".db_escape_string($this->field_enclose_char). 
     "' ESCAPED BY '".db_escape_string($this->field_escape_char). 
     "' ". 
     ($this->use_csv_header ? " IGNORE 1 LINES " : "") 
     ."(`".implode("`,`", $this->arr_csv_columns)."`)"; 
    $res = db_query($sql); 
    $this->error = mysql_error(); 

Je suis l'erreur mais le fichier était présent dans la dossier

avertissement utilisateur: Fichier 'http: \ localhost \ exemple \ sites \ par défaut \ files \ exemple_1.csv' introuvable (Errcode: 22) requête: LOAD DATA INFILE 'http: // localhost/example/sites/default/files/example_1.csv 'DANS LE TABLEAU temp_21_10_2010_06_38_00 CHAMPS TERMINÉS PAR', 'FACULTATIVEMENT CLOS PAR' \ '' ESCAPÉ PAR '\' IGNORE 1 LIGNES (PROGRAMNAME, OFFLINE, ONLINE, INSTOCK) dans C: \ wamp \ www \ example \ sites \ all \ modules \ importmodule \ Quick_CSV_import.php à la ligne 65.

Sur la ligne 65 du code PHP ci-dessus $res = db_query($sql); est présent.

Répondre

3

vous devez spécifier le chemin complet/absolu ou par rapport à votre fichier csv et non une URL

load data infile '/myproj/imports/example_1.csv' into table... 

load data infile 'c:\\myproj\\imports\\example_1.csv' into table... 

vous suggérons de consulter le manuel à nouveau http://dev.mysql.com/doc/refman/5.1/en/load-data.html

+0

ci-dessus même code fonctionne très bien en php, mais je ne peut pas l'obtenir à travers drupal. –

+0

Vous auriez un chemin différent de drupal que vous le feriez dans un script php autonome. –

+0

Sous Windows, j'ai dû utiliser les barres obliques '/' comme séparateur de chemin –

Questions connexes