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.
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.
usa mysqldump da riga di comando.....
> mysqldump -u nome_utente -p nome_db nome_tabella > percorso/nome_file.sql
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.
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.
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....
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.
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.
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....Originariamente inviato da gemello.it
[...]
Il sito é in hosting , non ho accesso alla macchina.[...]
Hai dato uno sguardo su PHPCLASSES ?
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:
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???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,0, strlen($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");
HEHE! Ho aperto il thread per postare la mia soluzione... ed ho trovato la tua!!
In pratica la stessa cosa, stampata a video:
Bellissima l'idea di renderlo una funzione!!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; };
Grazie, userò senza parsimonia!![]()
![]()
Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.