Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [MySQL] Dump di una tabella

    Ho visto dappertutto...
    Ho trovato molte classi tuttofare, che mi esportano tutto il database.

    Io vorrei esportare solo i dati di una tabella, magari stamparli a video o in un file gz
    Non riesco proprio a capire come si fa.
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  2. #2
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    usa mysqldump da riga di comando.....

    > mysqldump -u nome_utente -p nome_db nome_tabella > percorso/nome_file.sql

  3. #3
    Riga di comando significa Start -> Esegui di Windows?
    Sono tufo, non riesco proprio a capirlo, sto comando.. In PHP non va... in esegui di Windows nemmeno... In DOS non ne parliamo...
    me lo spieghi come ad un bambino?

    saarà l'aria natalizia...
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  4. #4
    perche' non usi phpmyadmin? oppure mysql administrator?

    oppure da linea di comando:

    http://database.html.it/guide/lezion...up-e-recovery/

    nella guida di Luca e' spiegato per bene....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    Ti ha risposto piero prima di me....in ogni caso da "Start -> Esegui di Windows" (come dici tu) digita cmd, ti si aprira il promp del dos. Spostati nella directory dove si trovano gli eseguibili di mysql (qualcosa del tipo c:\programmy\mysql server\bin) e da a quel punto lancia il comando....

  6. #6
    Fino ad ora uso MyAdmin.
    Però é lento e macchinoso.

    Vorrei fare il backup con un semplice tasto. Magari potrei metterlo in background automatico al primo utente che visita il sito nella giornata. Magari potrei farmelo spedire per posta, o scaricarlo in formato txt.

    Il sito é in hosting , non ho accesso alla macchina.
    Ho provato le varie classi messe a disposizione, funzionano bene, ma mi esportano tutto.
    Non riesco a configurarle.

    Ed io ho delle tabelle enormi che non cambiano, sulle quali non mi conviene fare il backup giornaliero.

    Su mysql.com non ho trovato niente.
    Nemmeno su php.net
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  7. #7
    Non penso che mysql administrator possa agire su un database in remoto.

    Mi spiego ancora meglio:
    In qualsiasi posto del mondo mi trovo, vorrei eseguire un backup, magari anche in wap:
    Un comando in una paginetta protetta, ed ho il database backuppato in una email, o in una directory del sito.
    Poi con calma mi scarico tutti i file bump giornalieri quando torno a casa dalle Maldive.

    Chiedo molto?
    Ok: quando torno a casa da Cesenatico.
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  8. #8
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    Originariamente inviato da gemello.it
    [...]
    Il sito é in hosting , non ho accesso alla macchina.[...]
    certo però che potevi dirlo subito: difficilmente chi ti fornisce il servizio ti da la possibilità di accedere con programmi tipo mysql administrator e affini.....tantomeno di usare la riga di comando....

    Hai dato uno sguardo su PHPCLASSES ?

  9. #9
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    Arieccomi
    In rete è pieno lo so...però giusto per diletto ho creato una funzioncina che fa il dump di una tabella, (proprio quello che serve gemello). Lo script funziona, l'ho testato con phpmyadmin 2.8.2.4, però in alcuni punti è veramente poco elegante, magari se qualcuno gli da uno sguardo...

    ecco la funzione:
    Codice PHP:
    function dump_table($table$conn$path)
    {
             
    //Recupero il codice di creazione della tabella
             
    $Qcreat_tbl=("SHOW CREATE TABLE $table");
             
    $Screat_tbl=mysql_query($Qcreat_tbl$conn) or die(mysql_error());
             
    $Rcreat_tbl=mysql_fetch_array($Screat_tbl);

             
    //Recupero idati contenuti nella tabella
             
    $Qdump_tbl=("SELECT * FROM $table");
             
    $Sdump_tbl=mysql_query($Qdump_tbl$conn) or die(mysql_error());

             
    //Inizio a scrivere il file di backup, se la tabella esiste la elimino e la ricreo
             
    $leggi="DROP TABLE IF EXISTS $table;\n";

             
    //Creo la tabella
             
    $leggi.=$Rcreat_tbl['Create Table'];
             
    $leggi.=";";
             
             
    //.....mooolto stile mysqldump
             
    $leggi.="\n\n\n--\n-- Faccio il Backup dei dati della tabella `$table`\n--\n\n\n";

             
    //Instruzione per popolare la tabella
             //$leggi.="INSERT INTO `$table` VALUES";


             //Cnto il numero dei campi
             
    $NumField=mysql_num_fields($Sdump_tbl);


             while(
    $Rdump_tbl=mysql_fetch_array($Sdump_tbl))
             {
                 
    $valori.="INSERT INTO `$table` VALUES (";
                 for(
    $i=0;$i<$NumField;$i++)
                 {
                     
    $valori.="'$Rdump_tbl[$i]',";
                 }

                 
    $valori=substr($valori,0strlen($valori)-1);
                 
    $valori.=");";
                 
    $valori.="\n";
             }
             
             
    $leggi.=$valori;
             
    $fp=fopen("$path""w+");
             
    fwrite($fp$leggi);
             
    fclose($fp);


    }
    //Poi per richiamarlo, dopo aver effetuato la connessione al db, si sceglie la tabella, si inserisce l'identificatico di connessione e il percorso dove salvare il file di backup:
    dump_table($table$conn"c:\\prova.sql"); 
    Certo quel( $valori=substr($valori,0, strlen($valori)-1); ) non è il massimo, solo che non mi è riuscito proprio utilizzare le funzioni degli array....secondo voi come lo si potrebbe migliorare???

  10. #10
    HEHE! Ho aperto il thread per postare la mia soluzione... ed ho trovato la tua!!
    In pratica la stessa cosa, stampata a video:
    Codice PHP:
    $tabella="articoli";
    $SQL=mysql_query("SELECT * FROM $tabella "); while($RS=mysql_fetch_array($SQL)){
    echo 
    "INSERT INTO `$tabella` VALUES (";
    $i=0$testo="";
    while (isset(
    $RS[$i])){$testo.=" '".str_replace("'""´"$RS[$i])."',"$i++;}; 
    $testo=eregi_replace("\,$"" "$testo);
    $testo.=")\r\n"
    echo 
    $testo; }; 
    Bellissima l'idea di renderlo una funzione!!
    Grazie, userò senza parsimonia!
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

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.