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

    copia di backup pura e semplice

    Vorrei creare una copia di backup della struttura e dei dati di un mio database mysql tramite istruzioni php. Ho letto, spulciato il forum, ma lì si trovano parole che purtroppo non conosco, tipo fai il dump, istruzioni tipo crontab (*NIX) o c'è una classe che fà questo ma và modificata.
    Mi sembra strano che non ci sia un'istruzione che copi nel mio hard disk, e lo reinstalli quando voglio (file di qualsiasi tipo, .xls, .txt, cct, bpt, bot), chiara e semplice per chi come me, anche se dedito all'apprendimento del linguaggio, per il momento non ci capisce una mazza.

    A chiunque conosca un metodo semplice, visto che la mia richiesta non è complicata.

    Riccardo

    P.S. Lavoro su Windows e più precisamente su Aruba

  2. #2
    Una cosa del genere si può fare a mano spippolando un pò. Il concetto è semplice. Devi fare una select e scrivere i risultati in un file di testo sotto forma di query. Quindi tutti i dati che vengono dalla select vanno inseriti nella query INSERT e prima di essa c'è una query CREATE che crea la struttura della tabella. Non ti so spiegare precisamente come si fanno qst cose ma prova a scaricare phpmyadmin e leggiti i sorgenti delle utility di dump dei database!

    ps: i server mysql di aruba sono su linux. E' importante questo perké su linux i nomi d tabelle, utenti, db e campi sono case sensitive!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525

    ekkilo

    Copia-incolla...funzia! Basta cambiare le var x la connessione al db
    Prelevato da:
    http://forum.html.it/forum/showthrea...5&pagenumber=5

    <?

    $db_host="127.0.0.1";
    $db_user="root";
    $db_password="";
    $database="nome_db";

    $now=date("Y-m-d_H:i:s");
    $name =$database."_".$now.".sql";

    $link = @mysql_connect($host, $db_user, $db_password) or die ("connessione fallita") ;



    @mysql_select_db($database) or die ("selezione db non riuscita");

    //ho selezionato il db



    //codice per il backup

    $_PVTVARS['sql_backup'] = "";

    $query_sql = "SHOW TABLE STATUS;";

    $query=mysql_query($query_sql);

    $_PVTVARS['sql_backup'] .= "#################################\n";

    $_PVTVARS['sql_backup'] .= "# Backup di $name #\n";

    $_PVTVARS['sql_backup'] .= "#################################\n";

    $_PVTVARS['sql_backup'] .= "#\n";

    $_PVTVARS['sql_backup'] .= "# Backup del " . date ("d_m_Y") . "\n";

    $_PVTVARS['sql_backup'] .= "#\n";

    $_PVTVARS['sql_backup'] .= "\n";

    $_PVTVARS['sql_backup'] .= "\n";

    while ($result=mysql_fetch_row($query)) {

    $result2=mysql_fetch_array(mysql_query("SHOW CREATE TABLE {$result[0]};"));

    $_TABLE['name']=$result[0];

    $_TABLE['query']=ereg_replace("[\n]*","",$result2[1]);

    $_PVTVARS['sql_backup'] .= "#\n";

    $_PVTVARS['sql_backup'] .= "# Drop table, if exists, {$_TABLE['name']} and recreate it\n";

    //$_PVTVARS['sql_backup'] .= "#\n";

    $_PVTVARS['sql_backup'] .= "DROP TABLE IF EXISTS {$_TABLE['name']};\n";

    $_PVTVARS['sql_backup'] .= "{$_TABLE['query']};\n\n";

    $_PVTVARS['sql_backup'] .= "#\n";

    $_PVTVARS['sql_backup'] .= "# Insert statament for {$_TABLE['name']}\n";

    $_PVTVARS['sql_backup'] .= "#\n";

    $query_sql2="SELECT * FROM {$_TABLE['name']};";

    $query2=mysql_query($query_sql2);

    while ($result2=mysql_fetch_row($query2)) {

    $_PVTVARS['sql_backup'] .= "INSERT INTO {$_TABLE['name']} VALUES (";

    $_INSERT = array();

    while (list($key,$value)=each($result2)) {

    $value=str_replace("#","",$value);

    $value=str_replace("--","--",$value);

    //$value=str_replace("\"","\"",$value);
    $value=str_replace("'","\'",$value);

    $_INSERT[] = "'{$value}'";

    }

    $_PVTVARS['sql_backup'] .= implode(",",$_INSERT);

    $_PVTVARS['sql_backup'] .= ");\n";

    }

    }



    if(ereg("MSIE ([0-9].[0-9]{1,2})", $_SERVER["HTTP_USER_AGENT"])) {



    header("Content-Type: application/octetstream");

    header("Content-Disposition: inline; filename=$name");

    header("Expires: 0");

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    header("Pragma: public");



    } else {



    header("Content-Type: application/octet-stream");

    header("Content-Disposition: attachment; filename=$name");

    header("Expires: 0");

    header("Pragma: no-cache");



    }



    //echo implode("",$_PVTVARS['sql_backup']);
    echo "",$_PVTVARS['sql_backup'];


    require("backup.php");
    ?>

  4. #4

    meglio in locale, ma arriveremo alla soluzione

    Prima domanda:
    In locale mi salva un file che contiene tutte le info. On line me le visualizza in una pagina web. Perchè????????

    Seconda domanda:
    In entrambi i casi in fondo al file ho questo tipo di errore:

    Fatal error: Maximum execution time of 120 seconds exceeded in D:\Inetpub\webs\dominioit\prova\backup.php on line 141

    come ovviare?????????

    Terza domanda:
    Per reinstallare la copia di backup? E' sufficiente come credo togliere " // " alla linea 137 e metterlo alla linea 138????????

    // echo implode("",$_PVTVARS['sql_backup']);
    echo "",$_PVTVARS['sql_backup'];

    o ho detto proprio una stronzata?????????''

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525
    allora...per qto riguarda il fatal error (ma qt'è grande sto db????) il motivo è che nel php.ini viene settato un tempo massimo per l'esecuzione degli script, una volta superato si interrompe. Per risolvere apri il file php.ini e aumenta il valore della variabile $max_execution_time=300 (è espresso in secondi,dovrebbero essere 5 minuti)

    Per la prima domanda...non sono sicura cmq il fatto che t apre
    il file +ttosto che memorizzarlo dovrebbe dipendere dalle impostazioni del browser...prova a commentare l'ltima riga ossia
    echo "",$_PVTVARS['sql_backup'];
    (non ho modo di testarlo or ora)

    Per reinstallare....dò un'okkiata che è meglio!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525
    ekkime...
    dietro front:
    Lascia così, poi per reinstallare la copia dipende...se lo fai a mano basta un copia incolla del file nel phpMyAdmin, altrimenti fa una ricerca

    //echo implode("",$_PVTVARS['sql_backup']);
    echo "",$_PVTVARS['sql_backup'];

  7. #7
    Grazie Simo, in locale credo che sia così (per il fatal error) ma come faccio on line ?!!!!!!!!!!?

    Sono su un'altro pc rispetto a ieri e qui mi scarica il backup anzichè visualizzarlo, sarà un'impostazione dell'altro pc.

    Effettivamente il mio db è un pò grossino (anche se vedo che non mancherebbe molto).

    Per reinstallare posso fare anche un copia incolla ma per il fatal error qualcuno può aiutarmi o non c'è proprio niente da fare???????????????

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525
    per il fatal error che io sappia l'unico modo è modificare quella variabile nel php.ini del server dove gira l'applicazione...
    Alcune variabili sono modificabili da codice, qsta nn lo so, prova con:

    ini_set("max_execution_time", "300");

    al peggio t segnalerà l'errore ... diffido ke t sia permesso

  9. #9
    quanti mega è il db?
    strano tutto quel tempo...

  10. #10

    anemomentplis

    anemomentplis. Cancellate il discorso del php.ini perchè non è lì l'errore. Ho verificato in locale con un db semplice e piccolo e mi crea comunque un file gigantesco con quell'error. Quindi l'ho spulciato un pò meglio e ho notato che crea correttamente tutto il codice per reinstallare il tutto ma dolcisinfundo a tutto questo codice mi dà questo errore:



    Warning: Cannot add header information - headers already sent by (output started at c:\programmi\apache group\apache\test\backup.php:138) in c:\programmi\apache group\apache\test\backup.php on line 107



    Warning: Cannot add header information - headers already sent by (output started at c:\programmi\apache group\apache\test\backup.php:138) in c:\programmi\apache group\apache\test\backup.php on line 109



    Warning: Cannot add header information - headers already sent by (output started at c:\programmi\apache group\apache\test\backup.php:138) in c:\programmi\apache group\apache\test\backup.php on line 111



    Warning: Cannot add header information - headers already sent by (output started at c:\programmi\apache group\apache\test\backup.php:138) in c:\programmi\apache group\apache\test\backup.php on line 113



    Warning: Cannot add header information - headers already sent by (output started at c:\programmi\apache group\apache\test\backup.php:138) in c:\programmi\apache group\apache\test\backup.php on line 115


    e in più mi comincia di nuovo e immette nuovamente il codice per reinstallare e così vià fino al max del tempo!!!!!!!!!1

    Ora se devèssere lo pòsso usà così, ma non amo le allungatoie.
    Prima o poi anch'io vi insegnerò 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.