Publicidade

peterhall

load data file

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora

  • Próximos Eventos

    • 0
      22 fevereiro 2017 22:00
      Até
      23 fevereiro 2017 01:30