Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    problema-> dump tabella di un database......

    Salve a tutti...sono nuovo in questo forum e spero di trovarmi bene e poter aiutare oltre che essere aiutato...... vi espongo subito il mio problema......
    Ho il seguente codice->

    Codice PHP:
    <?php 
     
    $host
    ="localhost";  
    $user="root";  
    $password="pass"
    $database="db_data"
    $prfx_tb="usr_"
    $usr$_SESSION['username']; 
    $table="$prfx_tb$usr"
     
     
    $bk "backup_$usr".sql"
    if ( 
    file_exists($bk)){$azione=0;}else{$azione=1;} 
    if ( 
    file_exists($bk) ) unlink($bk); 

    system
    "mysqldump --user=$user --password=$password --host=$host $database $table > $bk",$res 
    );
    $dimensione filesize($bk); 
    switch (
    $dimensione) { 
    case (
    $dimensione>=1048576):  
    $dimensione round($dimensione/1048576) . " MB"; break; 
    case (
    $dimensione>=1024):  
    $dimensione round($dimensione/1024) . " KB";  
    break; 
    default: 
    $dimensione $dimensione " bytes"; break; 

     
    ?>

    la porzione di codice incriminata è

    system(
    "mysqldump --user=$user --password=$password --host=$host $database $table > $bk",$res
    );


    appena ho pubblicato il sito mi sono reso conto di aver dimenticato un dettaglio...... la funzione system() è disabilitata per ragioni di sicurezza....... come posso fare per ottenere lo stesso risultato evitando il system()??

    Le ho provate tutte.....ma non sono riuscito a trovare una soluzione valida......
    ringrazio in anticipo:P

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    guarda se ti può interessare
    MySQL Dump PHP Script

  3. #3
    Già provato, ma ha come inconveniente che il file non lo lascia sul server ma lo fa scaricare all'utente a me interessa che il file che genera venga messo sul server per un utilizzo futuro......ho provato a modificarlo ma non sono riuscito ad ottenere nessun risultato.......purtroppo ho molti limiti.....AHuAhuHAuAH un aiutino da casa????

  4. #4
    system(
    "mysqldump --user=$user --password=$password --host=$host $database $table > $bk",$res
    );
    ma non c'è modo di sostituire questo con un'itruzione analoga ma che non dia fastidio???:P

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Ecco l'aiutino da casa
    Se noti alle righe da 54 a 57 dello script vengono inviati gli header per il browser per forzare il download del file che viene creato dalle funzioni: basta che elimini gli header e inserisci l'output della funzione _mysqldump() in un file che chiamerai con il nome che preferisci. Ovviamente dovrai dare allo script il percorso corretto dove vuoi che il dump sia salvato.

    Insomma, parti dalla funzione e correggi la parte che riguarda il salvataggio del file: sul forum o sul web troverai tante guide che ti aiuteranno per creare il codice di inserimento del testo in un file (alla fine di quello si tratta).
    Se poi ti serve altro aiuto, posta il codice che ti diamo una mano.

  6. #6
    grazie mille mi metto all'opera e vediamo che esce:P

  7. #7
    Ecco a voi cosa ne è uscito fuori....... diciamo che l'ho rifatto quasi da zero......aiutandomi con mani e con piedi, ma devi dire che sono soddisfatto......svolge egregiamente il suo sporco lavoro......se può essere utile ad altri posto il mio codice quì:P ciao e grazie.......


    Codice PHP:
    <?php

    $server 
    ="";
    $user "";
    $pass "";
    $db "";

    mysql_connect($server$user$pass);
    mysql_select_db($db);
    $tables mysql_list_tables($db);
    $table ="nome_tabella";
    $r mysql_query("SHOW CREATE TABLE `$table`");
    if (
    $r)
    {
    $insert_sql "";
    $d mysql_fetch_array($r);
    $d[1] .= ";";
    $SQL[] = str_replace("\n\n"""$d[1]);
    $table_query mysql_query("SELECT * FROM `$table`");
    $num_fields mysql_num_fields($table_query);
    while (
    $fetch_row mysql_fetch_array($table_query))
    {
    $insert_sql .= "\n\n\n\n--\n-- Dati della tabella-> `$table`\n--\n\n\nINSERT INTO $table VALUES(";
    for (
    $n=1;$n<=$num_fields;$n++)
    {
    $m $n 1;
    $insert_sql .= "'".mysql_real_escape_string($fetch_row[$m])."', ";
    }
    $insert_sql substr($insert_sql,0,-2);
    $insert_sql .= ");";
    }
    if (
    $insert_sql!= "")
    {
    $SQL[] = $insert_sql;
    }
    }


    $salvaimplode("\r"$SQL);
    $salva1="--\n-- Struttura tabella per -> `$table`\n--\nDROP TABLE IF EXISTS `$table`;\nSET @saved_cs_client     = @@character_set_client;\n
    SET character_set_client = utf8;"
    ;


    $crea_sql=fopen("file.sql","w");
    fwrite($crea_sql,$salva1);
    fwrite($crea_sql,$salva);

    fclose($crea_sql);

    ?>

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.