Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Esportare ed importare dati da MySQL utilizzando dei file :: Indice Php


Esportare ed importare dati da MySQL utilizzando dei file

Categoria: Php Inserito il: 02-08-2006 Stampa Invia (7057 click)

Un sistema estremamente pratico per creare delle copie di sicurezza dei nostri database da MySQL è quello di salvare le informazioni all'interno di semplici file, anche nel comune formato '.txt'.

Questa procedura di salvataggio si basa su un comando SELECT associato all'argomento OUTFILE. La sintassi da utilizzare è abbastanza semplice: se per esempio volessimo salvare tutti i dati presenti in una tabella chiamata 'archivio' all'inteno di un file di testo denominato 'archivio.txt', dovremmo digitare un camando simile al seguente:

mysql> SELECT * FROM nome_tb INTO OUTFILE '/tmp/archivio.txt';
Il file destinato alla copia di sicurezza non deve essere preesistenete, deve cioè essere creato automaticamente all'atto del backup, questo vuol dire che non sarà possibile effettuare la procedure descritta attraverso un utente che non abbia FILE tra i suoi privilegi.

Inoltre, si tenga presente il fatto che il salvataggio può avvenire esclusivamente all'interno dello stesso server in cui è installato il DBMS, non sarà quindi possibile scrivere il file risultante dalla SELECT su un terminale in remoto.

L'output del nostro comando presenterà plausibilemente i dati salvati disposti in un ordine sul modello seguente:

Se per caso si desiderasse ottenere un output senza caratteri di terminazione, sarà sufficiente sostituire l'argomento OUTFILE con DUMBFILE e verranno generati dei risultati disposti su una singola riga.

Naturalmente, MySQL consente di operare anche procedure di restore sempre attraverso l'utilizzo di file. Se per esempio la nostra tabella 'archivio' fosse vuota e la volessimo popolare utilizzando le informazioni salvate all'interno del file 'archivio.txt', l'istruzione da digitare dovrà essere la seguente:
LOAD DATA INFILE '/tmp/archivio.txt' INTO TABLE nome_tb;
Anche il lettore meno ferrato nelle procedure di gestione dei database avrà sicuramente colto al volo come il comando descritto sia sintatticamente opposto a quello necessario per il backup; invece di una SELECT che estrae i dati abbiamo LOAD DATA che li importa, invece di un OUTFILE abbiamo l'argomento INFILE che reperisce informazioni da un documento invece che inviarle ad esso.

E' possibile inoltre utilizzare l'opzione REPLACE, ponendola tra il nome del file di input e la clausola INTO, questo permetterà di aggiornare in una tabella non vuota tutti i record che posseggono la stessa chiave.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Inviare email con immagine utilizzando PHPMailer
La classe PHPMailer ci consente di inviare con semplicità anche email contenenti immagini; anche in questo caso la sintassi da... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti