Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [php&sql] Importare dati da file sql

    salve.
    ho una serie di file .sql, grandi dagli 800kb ai 2.5 mega (il + grande)..

    vorrei importarli nel mio db, però ho la necessità di farlo tramite codice php, nn avendo la possibilità di utilizzare phpmyadmin.

    guardando il forum phpbb (il cui scheda di tabelle è grande 18mb), ho notato che il procedimento da seguire è + o - questo:

    codice preso dall'installazione di phpbb
    Codice PHP:
                    // Load in the sql parser
                    
    include($phpbb_root_path.'includes/sql_parse.'.$phpEx);

                    
    // Ok we have the db info go ahead and read in the relevant schema
                    // and work on building the table.. probably ought to provide some
                    // kind of feedback to the user as we are working here in order
                    // to let them know we are actually doing something.
                    
    $sql_query = @fread(@fopen($dbms_schema'r'), @filesize($dbms_schema));
                    
    $sql_query preg_replace('/phpbb_/'$table_prefix$sql_query);

                    
    $sql_query $remove_remarks($sql_query);
                    
    $sql_query split_sql_file($sql_query$delimiter);

                    for (
    $i 0$i sizeof($sql_query); $i++)
                    {
                        if (
    trim($sql_query[$i]) != '')
                        {
                            if (!(
    $result $db->sql_query($sql_query[$i])))
                            {
                                
    $error $db->sql_error();
                
                                
    page_header($lang['Install'], '');
                                
    page_error($lang['Installer_Error'], $lang['Install_db_error'] . '
    $error['message']);
                                
    page_footer();
                                exit;
                            }
                        }
                    } 
    ovviamente questo codice riportato in uno script a parte nn funziona( mancherebbero definizioni di variabili, funzioni, ecc...)

    come potrei arrangiare questo codice per un generico file .sql da importare in un generico db ?
    insomma, uno script che possa andare bene in qualunque situazione...

    grazie,
    kicko

  2. #2
    credo che è molto più semplice partire exnovo:
    1) leggi il file con i comandi sql, usa la funzione fopen(), fread ecc, trovi nel manuale php on line alcuni esempi completi.
    2) fai un ciclo per la lettura di ogni riga e letta la riga, fai una query con il contenuto appena letto.

    potresti ottimizzare anche effettuando una query ogni 100 righi o usanto le transazioni, ma inizia a far funzionare qualcosa.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.