peterhall 0 Denunciar post Postado Setembro 25, 2010 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); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Setembro 25, 2010 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. Compartilhar este post Link para o post Compartilhar em outros sites
peterhall 0 Denunciar post Postado Setembro 25, 2010 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); ?> Compartilhar este post Link para o post Compartilhar em outros sites
peterhall 0 Denunciar post Postado Novembro 23, 2010 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); ?> Compartilhar este post Link para o post Compartilhar em outros sites