Ho una serie di query che effettuano una migrazione da un database .mdb ad un mysql. Tutto funziona correttamente tranne una tabella, che durante l'esecuzione blocca la pagina PHP ed esce dando 'errore caricamento pagina'.
La cosa strana è che si blocca sempre a 9994 records importati in mysql e sono sicuro non sia un problema di campi errati in quanto ho provato anche ad eliminare le righe in prossimità dell'errore nel db in lettura.
questo il codice:
qualcuno sa spiegarmi perchè si blocca sempre nello stesso punto?Codice PHP:$query="SELECT * FROM ana_ridemessi INNER JOIN ana_clienti ON ana_ridemessi.ID_Cliente_ridemesso = ana_clienti.id_cliente ORDER BY id_cliente";
$rs->Open($query,$cn) ;
$fp = fopen ("file.txt", "w+");
while(!$rs->EOF){
$ragione_sociale_cliente = @mysql_real_escape_string($rs->Fields['RagioneSocialeCLiente_RIDEmesso']);
// inizio la transazione
mysql_query("START TRANSACTION");
$query_inserimento = "INSERT INTO ana_ridemessi (
id_ridemesso,
id_cliente,
ragione_sociale_cliente,
nome_disposizione,
importo,
data,
data_scadenza,
pagato,
data_pagamento,
emesso_scontrino,
data_emissione_scontrino,
banco_posta
) VALUES (
'{$rs->Fields['id_ridemesso']->value}',
'{$rs->Fields['id_cliente_ridemesso']->value}',
'$ragione_sociale_cliente',
'{$rs->Fields['NomeDisposizione_RIDEmesso']->value}',
'{$rs->Fields['Importo_RIDEmesso']->value}',
STR_TO_DATE('{$rs->Fields['Data_RIDEmesso']->value}', '%d/%m/%Y'),
STR_TO_DATE('{$rs->Fields['DataScadenza_RIDEmesso']->value}', '%d/%m/%Y'),
'{$rs->Fields['Pagato_RIDEmesso']->value}',
STR_TO_DATE('{$rs->Fields['Data_Pagamento_RIDEmesso']->value}', '%d/%m/%Y'),
'{$rs->Fields['EmessoScontrino_RIDEmesso']->value}',
STR_TO_DATE('{$rs->Fields['Data_EmissioneScontrino_RIDEmesso']->value}', '%d/%m/%Y'),
'{$rs->Fields['BancoPosta_RIDEmesso']->value}'
);";
$result = mysql_query($query_inserimento, $db_link) or die (mysql_error($result).$query_inserimento);
// se non va a buon fine eseguo il rollback
if(!$result) {
fwrite ($fp, "{$rs->Fields['id_ridemesso']->value}\n - ");
mysql_query("ROLLBACK");
exit;
}
// se sono arrivato fin qui posso fare il commit
mysql_query("COMMIT");
$rs->MoveNext() ;
}
premetto che questa tabella ha circa 10000 records, mentre ne importo altre da oltre 120000 per cui non è un problema di timeout.

Rispondi quotando