Fazer upload de quebras depois de 3203 inserções

0

Eu carrego um arquivo de texto com aproximadamente 30.000 linhas em um Mysql-DB.

O upload é interrompido exatamente após 3203 linhas. Um arquivo dividido com menos de 3203 linhas é executado corretamente. O problema é, com certeza, não na linha 3203. Em vez disso, em uma configuração do MySQL (por exemplo max_nbrs_of_inserts)

as linhas aparecem da seguinte forma:

...
09.01.92,06:59:27,  34,1322, 31,   2,06:59:27,00:00:00,     16.00,      0.00
...

Cada uma dessas linhas gerará uma instrução SQL-INPUT como no exemplo a seguir:

$query  = "INSERT INTO  tmp_GF

(

fldGFDATUMZEIT,

fldNUMMER,

fldRespond,

fldGFP,

fldBesNr,

fldBEGINN,

fldDAUER,

fldVORRAT,

fldVERZEHR,

fldSave,

fldZeig  

)values(

'$GFDATUMZEIT',

$NUMMER,

$Respond,

$GFP,

$BesNr,

'$BEGINN',

'$DAUER',

$VORRAT,

$VERZEHR,

0,

'$Zeig') ";

php.ini E configurações de script de upload:

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 3000);
ini_set('max_execution_time', 3000);

Versão do Ubuntu 11.10

Versão do Mysql

protocol_version    10
version     5.1.58-1ubuntu1
    
por Paul 22.05.2012 / 06:57

1 resposta

0

O MySQL tem seu próprio tamanho máximo para uma única solicitação chamada max_allowed_packet . Isso é definido como uma pequena quantia por padrão (o padrão do MySQL é de 1MB, sua distribuição pode ser maior) mas pode ser aumentada para até 1GB.

O aumento não prejudicará o desempenho de solicitações existentes. A razão pela qual ele é pequeno por padrão é simplesmente pegar o que pode ser um erro, caso você não esteja esperando pacotes muito grandes.

Agora, você não mencionou uma mensagem de erro específica, mas se eu adivinhei a causa do seu problema corretamente, o MySQL provavelmente estará gerando esta mensagem de erro ("Pacote muito grande" no servidor e "Conexão perdida com o servidor MySQL durante a consulta" ou similar no cliente).

    
por thomasrutter 22.05.2012 / 08:06