Guest post di Daniele

Oggi vi presento la nuova versione (2.0) della classe MySQLDump già introdotta da questo articolo nel quale si spiega come utilizzare questo strumento per semplificare il backup di database MySQL mediante pagine php.

I miglioramenti non sono molto numerosi dato che si partiva dal già ottimo lavoro di inandrea ma penso possano rivelarsi abbastanza utili: ora è infatti possibile esportare struttura e/o dati non solo dell’intero database selezionato ma anche di una singola tabella.

Ipotizziamo di avere un database denominato ‘ilmiodatabase’ e, all’interno di questo la tabella ‘lamiatabella’. Ora vediamo come esportare struttura e dati per la nostra tabella. (Attenzione che l’interfaccia della classe è leggermente cambiata rispetto alla precedente versione).

//Includo la libreria
@include_once('lib_dump.php');
//Connessione al database
$connection = @mysql_connect('127.0.0.1','username','password');
//Creazione di una istanza della classe MySQLDump
//1° parametro: il nome del database da esportare
//2° parametro: il file che conterrà il dump
//3° parametro: il tipo di file creato (true = compresso, false = semplice)
//4° parametro: la codifica dei dati (true = esadecimale, false = plain text)
$dumper = new MySQLDump('ilmiodatabase','filedidump.sql',false,false);
//Espotazione della struttura della tabella 'lamiatabella'
$dumper->getTableStructure('lamiatabella');
//Espotazione dei dati contenuti nella tabella 'lamiatabella'
$dumper->getTableData('lamiatabella');


In questo modo otteniamo, all’interno del file filedidump.sql, il dump completo della tabella ‘lamiatabella’, cioè sia l’istruzione sql per ricreare la tabella sia il backup dei dati. Ovviamente nulla ci vieta di richiedere il backup della sola struttura o dei soli i dati.

Se invece vogliamo il backup completo del database, la nuova interfaccia della classe ci impone di utilizzare queste istruzioni in alternativa a quello che abbiamo presentato in precedenza:

@include_once('lib_dump.php');
$connection = @mysql_connect('127.0.0.1','username','password');
$dumper = new MySQLDump('ilmiodatabase','filedidump.sql',false,false);
$dumper->doDump();

Per ottenere invece separatamente struttura e dati dobbiamo operare così:

@include_once('lib_dump.php');
$connection = @mysql_connect('127.0.0.1','username','password');
$dumper = new MySQLDump('ilmiodatabase','filedidump.sql',false,false);
$dumper->getDatabaseStructure();
$dumper->getDatabaseData();

Ovviamente, come dicevo prima, nulla ci vieta di ottenere il backup della sola struttura del database o dei soli dati.

Sperando vi possa essere utile vi invito a visitare l’apposita sezione del nostro sito (http://www.creativefactory.it/lab/) dove potete trovare anche tutta la documentazione completa generata con phpdoc.

Ecco il link da cui scaricare la classe: http://www.creativefactory.it/lab/mysqldump/lib_dump.zip

In alternativa potete effettuare il download del file anche da phpclasses.org.


Se sei interessato a questo post, potresti anche provare a leggere:

    No related posts