Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hbaker

ler inserts de arquivo texto e gravar no banco só grava o último!

Recommended Posts

Olá,

tenho um arquivo texto com vários inserts nele, faço a leitura das linhas via código, cada linha é um insert. Então coloquei isso em um loop, o problema é que ele só executa no banco só o ultimo insert. E qualquer linha do insert no arquivo que pegar, copiar e executar no mysql ele insere. Portanto acredito que o erro está nessa rotina abaixo q uso para inserir no banco e não no conteúdo do arquivo texto.

 

alguém já passou por isso?

 

o código é:

$arq=fopen("./dados.sql","r");

$i=0;

while(!feof($arq))

{

$sql[$i]=fgets($arq);

$i++;

}

foreach($sql as $query)

{

if(mysql_query($query))

{

echo("gravou");

}

else

{

echo "<br><center><font face=\"Verdana\" size=\"1\" color=\"#cf0800\">Não foi possivel importar! - $query<br></font></center>";

}

}

mysql_close($conn);

fclose($arq);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cadê a função que serve para gravar no banco de dados ? pelo que percebi, você está usando a função mysql_query, mais está faltando o INSERT ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cadê a função que serve para gravar no banco de dados ? pelo que percebi, você está usando a função mysql_query, mais está faltando o INSERT ;)

 

Então, as funções que executo no mysql_query estão em um arquivo texto chamado dados.sql, vou lendo linha por linha e executando cada linha que leio no laço foreach. Ele le as linhas todas corretas, mas o engraçado é que parece q ele só executa a ultima, pois no caso só fica no banco o ultimo insert dessa lista.

 

segue abaixo um pedaço do arquivo dados.sql com as funções q executo:

 

INSERT INTO aluno(alu_codigo,alu_login,alu_senha,alu_status,alu_nome,alu_rg, alu_nome2,alu_ano,alu_serie,alu_seriecurso,bol_codigo) VALUES(8, '1051639001', '993324', 'A', 'nome do aluno', '105.163.900/1', 'nome2', 2008, '1º ANO E. F.', 'ENSINO FUNDAMENTAL I', 7);

INSERT INTO boletim(bol_codigo,bol_observacao) VALUES(7, null);

INSERT INTO disciplina_boletim( dis_codigo , bol_codigo , db_nota1bim , db_nota2bim , db_nota3bim , db_nota4bim , db_falta1bim , db_falta2bim , db_falta3bim , db_falta4bim , db_recup1bim , db_recup2bim , db_recup3bim , db_recup4bim , db_total , db_media , db_rec , db_cargahoraria ) VALUES (12, 7, 5, null, null, null, null, null, null, null, null, null, null, null, 5, 1.0, null, 130);

INSERT INTO boletim(bol_codigo,bol_observacao) VALUES(8, null);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cadê a função que serve para gravar no banco de dados ? pelo que percebi, você está usando a função mysql_query, mais está faltando o INSERT ;)

 

Então, as funções que executo no mysql_query estão em um arquivo texto chamado dados.sql, vou lendo linha por linha e executando cada linha que leio no laço foreach. Ele le as linhas todas corretas, mas o engraçado é que parece q ele só executa a ultima, pois no caso só fica no banco o ultimo insert dessa lista.

 

segue abaixo um pedaço do arquivo dados.sql com as funções q executo:

 

INSERT INTO aluno(alu_codigo,alu_login,alu_senha,alu_status,alu_nome,alu_rg, alu_nome2,alu_ano,alu_serie,alu_seriecurso,bol_codigo) VALUES(8, '1051639001', '993324', 'A', 'nome do aluno', '105.163.900/1', 'nome2', 2008, '1º ANO E. F.', 'ENSINO FUNDAMENTAL I', 7);

INSERT INTO boletim(bol_codigo,bol_observacao) VALUES(7, null);

INSERT INTO disciplina_boletim( dis_codigo , bol_codigo , db_nota1bim , db_nota2bim , db_nota3bim , db_nota4bim , db_falta1bim , db_falta2bim , db_falta3bim , db_falta4bim , db_recup1bim , db_recup2bim , db_recup3bim , db_recup4bim , db_total , db_media , db_rec , db_cargahoraria ) VALUES (12, 7, 5, null, null, null, null, null, null, null, null, null, null, null, 5, 1.0, null, 130);

INSERT INTO boletim(bol_codigo,bol_observacao) VALUES(8, null);

 

 

valeu pela força, acabei de resolver eu tive que tirar os ';' do final de cada instrução do arquivo texto... agora está gravando tudo direitinho no banco, apartir do arquivo texto...

bom fds

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.