Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Foto:

load data file

  • Por favor, faça o login para responder
3 respostas neste tópico

#1 peterhall

peterhall
  • Membros
  • 96 posts

Postado 24 setembro 2010 - 21:07

boas. tenho este código para importar um ficheiro txt, acontece que dá sempre erro na linha 6 e quando não dá erro, também não adiciona linha nenhuma, o que estará errado???

<?php

$conexao = mysql_connect("localhost","root","");
mysql_select_db("dbase");

$sql = ("LOAD DATA INFILE 'C:/wamp/www/dir/file.txt' INTO TABLE table_name FIELDS TERMINATED BY '\t' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES");

mysql_close($conexao);
?>

  • 0

#2 Bruno Augusto

Bruno Augusto

    Sou Bobo Também ¬¬

  • Moderadores
  • 6.332 posts

Postado 24 setembro 2010 - 21:27

Observe o código postado mas atente para a forma como que a colorização foi feita.

Perceba o padrão. Nomes de função aparecem em preto e strings em verde. Que cor mysql_close() está e emqual deveria estar.

Uma dica. O erro está na sua query.
  • 0

#3 peterhall

peterhall
  • Membros
  • 96 posts

Postado 25 setembro 2010 - 20:38

Observe o código postado mas atente para a forma como que a colorização foi feita.

Perceba o padrão. Nomes de função aparecem em preto e strings em verde. Que cor mysql_close() está e emqual deveria estar.

Uma dica. O erro está na sua query.



pois, já reparei que sim, depois da explicação, acontece que já fiz milhentas alterações e nada, não funciona. essa query saquei do phpmyadmin quando fiz a importação através do "load data infile", depois criei o código php, fiz algumas alterações acrescentando a conexão e fecho da conexão à bdados.

importação pelo phpmyadmin:
LOAD DATA LOCAL INFILE 'C:\\wamp\\tmp\\php5A1.tmp' INTO TABLE `rfplansite_0_temp` FIELDS TERMINATED BY '\t' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES # Linhas afectadas: 64 -- mysql

o código gerado:
$sql = 'LOAD DATA LOCAL INFILE \'C:\\\\wamp\\\\tmp\\\\php5A1.tmp\' INTO TABLE `rfplansite_0_temp` FIELDS TERMINATED BY \'\\t\' ENCLOSED BY \'"\' ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\n\' IGNORE 1 LINES# Linhas afectadas: 64'

e o código após a alteração, sem erros, mas não importa nada:
<?php

$conexao = mysql_connect("localhost","root","");
mysql_select_db("dbase");

$sql = "LOAD DATA INFILE D:/pazevedo/Tool/OUT_Files/RFPlanSite_20100917.out INTO TABLE rfplansite_0_temp FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' IGNORE 1 LINES";

mysql_close($conexao);
?>

  • 0

#4 peterhall

peterhall
  • Membros
  • 96 posts

Postado 23 novembro 2010 - 08:13

mais um tempinho... para importar qualquer tipo de ficheiro para mysql. com a função 'glob()', pode importar todos os ficheiros por extensão, padrâo, etc... como tem um loop a ser executado, importará todos os ficheiros até não haver mais e elimina-os.

atenção que no final, o script apaga os ficheiros importados com a função 'unlink()'. se não os quiserem eliminar, apaguem essa linha ou coloquem a função 'rename()' com o respectivo caminho e movam-nos para outra pasta.


<?php
// faz ligação à base de dados
$con = mysql_connect('localhost','root','');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  } 
mysql_select_db('base_dados', $con);

// lê todos os ficheiro existentes na pasta com o mesmo padrão
foreach (glob("D:/dir1/dir2/file_*.txt") as $arquivo) {
    echo "Importado o arquivo de origem de $arquivo com o tamanho ". filesize($arquivo) ."<br/>";

// importa os ficheiros para a tabela
$loadsql = ("LOAD DATA INFILE '$arquivo' INTO TABLE nome_da_tabela FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' IGNORE 1 LINES");

// executa a query
mysql_query($loadsql,$con);

// elimina os ficheiros na directoria
unlink($arquivo);
}

// fecha a conexão à base de dados
mysql_close($con);

?>

  • 0




Publicidade

/ins>