Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344

    Blocco esecuzione migrazione mdb->mysql

    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:

    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() ;
                            } 
    qualcuno sa spiegarmi perchè si blocca sempre nello stesso punto?
    premetto che questa tabella ha circa 10000 records, mentre ne importo altre da oltre 120000 per cui non è un problema di timeout.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Ho risolto il problema. Stava nel fatto che in questa riga:

    Codice PHP:
    $ragione_sociale_cliente = @mysql_real_escape_string($rs->Fields['RagioneSocialeCLiente_RIDEmesso']); 
    Avevo omesso '->value'. Quindi la riga giusta è:

    Codice PHP:
    $ragione_sociale_cliente = @mysql_real_escape_string($rs->Fields['RagioneSocialeCLiente_RIDEmesso']->value); 
    Ora non so perchè, ma fino ad un certo numero di record funziona correttamente, superato il quale va in errore (tipo timeout o out of memory, nel senso che esce dall'esecuzione dando un errore di caricamente pagina). Sarà dovuto al fatto che passa l'intero campo?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.