HAI BISOGNO DI INFORMAZIONI?
+39 06452216038
LIVE SUPPORT
Parla con un operatore

Hosting Per Te - HelpDesk

LIVE SUPPORT
Parla con un operatore
 
 Categorie Notizie
(13)Domini (3)dominio (28)Blog (61)Sicurezza (31)Wordpress (1)Cross-Site (1)vulnerabilità (7)wordpress (1)zero day (8)sicurezza (1)sitelock (16)News (1)google (1)indicizzazione (1)mobilegeddon (8)seo (18)Hosting (4)hosting (1)multi (1)reseller (1)rivenditore (1)provider (18)Email (28)Server (3)email (2)imap (1)imapsync (2)migrazione (1)posta (1)affiliazione (2)guadagnare (65)Ecommerce (3)e-commerce (1)ecommerce (3)VPN (1)wi-fi (1)backup (2)server (29)marketing (1)ppc (1)search-engine-optimization (1)seo pay-per-click (1)domini (2)gTLD (1)IP (1)IP-condiviso (1)IP-dedicato (2)cloud (1)virtuale (3)vps (21)Blogging (3)blog (2)blogging (42)CMS (3)cms (1)sito di successo (1)campagne e-mail (1)criptare dati (1)ssl (1)plugin e-commerce (1)newsletter (1)rivenditori (1)server vps smtp (1)SMTP (1)design responsivo (1)responsive design (1)responsive web design (2)hacking (4)malware (1)phishing (1)server upgrade (2)prestashop (2)campagna e-mail (3)e-mail marketing (1)contenuti sito (1)struttura pagina web (1)call-to-action (1)promozione sito (1)ottimizzare sito (1)cookie law (1)psicologia web design (1)vendita siti (1)website flipping (1)titolo (1)alternativa google analytics (2)monitoraggio (1)keyword (1)programmazione (1)facebook marketing (1)colori (2)clienti (1)privacy whois (1)crimini informatici (1)Cyber crime (1)search console di google (1)supporto managed (1)hacker (1)copyright (1)referrer spam (1)Split testing A/B (1)freelance (2)magento (1)Linux (2)Windows (1)upgrade piani hosting (1)Google SpeedTest (1)landing page (1)seo friendly (1)struttura link (1)errori wordpress (2)psicologia dei prezzi (1)metodi di pagamento (1)effetti sonori (2)APP (1)webmaster (1)fatturazione elettronica (1)sito web (1)backup wordpress (1)fan facebook (1)Exchange ActiveSync (1)POP3 (1)firma e-mail (1)web agency (1)ergonomia (1)editor (3)adwords (1)quality score (1)errori ecommerce (16)startup e business (1)errori azienda (1)sql injection (1)monetizzare (1)regole successo (1)nameserver (2)mailing list (1)responsive email (2)pec (2)bootstrap (1)Bing (1)Bing Ads (1)Foundation (3)framework (1)statistiche mobile (1)adwords per mobile (1)about page (1)chi siamo (1)seo vs ppc (1)errori webmaster principianti (20)SEO (1)PDF e SEO (1)ottimizzare pdf (36)strumenti (1)relazionarsi con i clienti (1)FAQ (1)tld srl (1)traffico (1)keywords (1)parole chiave (1)trend estero (3)statistiche (1)K.I.S.S. (1)plugin sicurezza wordpress (2)certificato ssl (1)template (1)black hat (1)Creative Common Zero (1)blog ecommerce (1)Google Smart Goals (1)web design (1)facebook ads (1)SFTP (1)FTP (1).htaccess (1)statistiche e-commerce (1)url brevi (2)cloud computing (1)HDD (1)grafici (1)librerie js (2)antivirus (1)framework css (1)Google Panda (2)Internet of Things (2)ransomware (1)TeslaCrypt (2)tecnologia (1)telelavoro (1)mobile friendly (1)proxy (2)cryptolocker (1)Processore AMD (1)rapporto clusit 2016 (1)truffe online (1)plugin monitoraggio (2)bug linux (1)ranking tools (1)social network (1)deep web (1)tor (1)plugin sottoscrizioni (1)link building (3)plugin wordpress (1)design (1)siti di successo (1)ottimizzare immagini (2)widget (1)sito monopagina (1)VPS Economici (1)trend del marketing (1)realtà aumentata (1)ip dinamico (1)progettazione sito (1)Redirect 301 e 302 (1)notifiche push (1)velocità sito (1)ottimizzazione contenuti (1)guadagnare con un blog (1)costi e-commerce (1)social media (1)frode amichevole (1)e-commerce wordpress (3)drupal (2)joomla (1)travel blog (1)php (1)chargeback (1)e-mail (1)plug-in video wordpress (1)sito sportivo (1)plug-in seo (1)drupal vs magento (1)portfolio (1)plug-in portfolio (1)sottodomini di terzo livello (1)sicurezza e-commerce (1)pubblicità su facebook (1)visualizza numero utenti (1)affiliate marketing (1)cartella nascosta android (1)creare app (2)Infiniband (1)Intel LGA 3647 (1)furto di dati sensibili (1)marketing diretto (1)record DNS (2)ddos (1)Mobile shopping (1)Malware su Skype (1)virus (1)youtube (1)seo immagini (1)web marketing (1)vendita online (1)food blogger (1)Plesk Onyx (1)Bug Fedora ed Ubuntu (1)Micro SSD (1)IoT (1)Chip Kaby Lake (1)primo e-commerce (1)blog di fitness (2)plug-in WordPress (1)SPF e DKIM (1)Cyber sicurezza (1)file robots.txt (1)AMD Naples (1)Vulnerabilità REST API WordPress (1)trasferimento da Blogger a WordPress (1)plug-in WordPress per musicisti (1)Crittazione (2)CPU (1)Legge antibufale (1)Strumenti di marketing (1)CPU AMD (1)nda (1)Let's Encrypt (1)Hosting Linux o Windows (1)progress bar (1)blog di cucina (1)PrestaShop oppure WooCommerce (1)carte di credito (1)librerie javascript (1)DDR5 (1)plugin monetizzazione (1)Wireless (2)drag and drop (1)web server (1)Curricula digitali (1)name server (1)Autenticazione a due fattori (1)Trend Tech (1)business online (1)Keylogger (1)infopreneur (1)E-book (1)WanaKiwi (1)file LNK (1)hub (1)router (1)switch
Feed RSS
Notizie
lug
27

php mysql DBEffettuare il backup di un database è un compito molto importante che va eseguito regolarmente.  Di norma si utilizzano applicazioni come  phpMyAdmin in grado di gestire un database direttamente dal browser, può capitare, però, che non si dispongano delle credenziali di accesso al database e si abbiano solo i dati di accesso FTP oppure che il cliente per il quale si sta seguendo un determinato progetto non intenda cimentarsi nell’uso di applicazioni che richiedono un impegno eccessivo.  In questo post riporteremo uno script in grado di risolvere problemi di questo tipo.

 

La classe di seguito riportata consente di esportare totalmente o parzialmente (i.e. solo alcune tabelle) un qualunque database in una directory prestabilita.  Il file creato sarà poi scaricabile tramite FTP.  Spesso i dati di accesso sono reperibili in un file del tipo configurazione.php, access.php o qualcosa di simile e sicuramente esiste una directory con i necessari permessi di lettura e  scrittura dove poter inserire il file di backup (cache, temp, ecc). 

 

Ecco il codice:

 

<?php

/**

 * Classe Backup_Database per

 * il back up parziale o totale di un database MySQL

 * autore D. L. Azana

 */

 

// Report errori

error_reporting(E_ALL);

 

/**

 * Assegnazione parametri

 */

define(“DB_USER”, ‘admin’);

define(“DB_PASSWORD”, ‘passwd’);

define(“DB_NAME”, ‘nome del database’);

define(“DB_HOST”, ‘localhost’);

define(“OUTPUT_DIR”, ‘cache’);

define(“TABLES”, ‘*’);

 

/**

 * Istanza Backup_Database ed esecuzione backup

 */

$backupDatabase = new Backup_Database(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

$status = $backupDatabase->backupTables(TABLES, OUTPUT_DIR) ? ‘OK’ : ‘KO’;

echo “

 

 

risultati backup: “.$status;

 

/**

 * Classe Backup_Database

 */

class Backup_Database {

    /**

     * Host dove il database alloggia

     */

    var $host = ”;

 

    /**

     * Username utilizzato per collegarsi al DB

     */

    var $username = ”;

 

    /**

     * Password utilizzato per collegarsi al DB

     */

    var $passwd = ”;

 

    /**

     * Database di cui effettuare il backup

     */

    var $dbName = ”;

 

    /**

     * charset del DB

     */

    var $charset = ”;

 

    /**

     * Constructor

     */

    function Backup_Database($host, $username, $passwd, $dbName, $charset = ‘utf8’)

    {

        $this->host     = $host;

        $this->username = $username;

        $this->passwd   = $passwd;

        $this->dbName   = $dbName;

        $this->charset  = $charset;

 

        $this->initializeDatabase();

    }

 

    protected function initializeDatabase()

    {

        $conn = mysql_connect($this->host, $this->username, $this->passwd);

        mysql_select_db($this->dbName, $conn);

        if (! mysql_set_charset ($this->charset, $conn))

        {

            mysql_query(‘SET NAMES ‘.$this->charset);

        }

    }

 

    /**

     * Backup l’intero database oppure solo alcune Tabelle

     * Utilizzre ‘*’ per effetuae il backup dell’intero database oppure ‘tabella1 tabella2 tabella3… per un backup parziale’

     * @param string $tables

     */

    public function backupTables($tables = ‘*’, $outputDir = ‘.’)

    {

        try

        {

            /**

            * Tabelle da esportare

            */

            if($tables == ‘*’)

            {

                $tables = array();

                $result = mysql_query(‘SHOW TABLES’);

                while($row = mysql_fetch_row($result))

                {

                    $tables[] = $row[0];

                }

            }

            else

            {

                $tables = is_array($tables) ? $tables : explode(‘,’,$tables);

            }

 

            $sql = ‘CREATE DATABASE IF NOT EXISTS ‘.$this->dbName.”;\n\n”;

            $sql .= ‘USE ‘.$this->dbName.”;\n\n”;

 

            /**

            * Iterazione tabelle

            */

            foreach($tables as $table)

            {

                echo “Back up tabella”.$table;

 

                $result = mysql_query(‘SELECT * FROM ‘.$table);

                $numFields = mysql_num_fields($result);

 

                $sql .= ‘DROP TABLE IF EXISTS ‘.$table.’;’;

                $row2 = mysql_fetch_row(mysql_query(‘SHOW CREATE TABLE ‘.$table));

                $sql.= “\n\n”.$row2[1].”;\n\n”;

 

                for ($i = 0; $i < $numFields; $i++)

                {

                    while($row = mysql_fetch_row($result))

                    {

                        $sql .= ‘INSERT INTO ‘.$table.’ VALUES(‘;

                        for($j=0; $j<$numFields; $j++)

                        {

                            $row[$j] = addslashes($row[$j]);

                            $row[$j] = ereg_replace(“\n”,”\\n”,$row[$j]);

                            if (isset($row[$j]))

                            {

                                $sql .= ‘”‘.$row[$j].'”‘ ;

                            }

                            else

                            {

                                $sql.= ‘””‘;

                            }

 

                            if ($j < ($numFields-1))

                            {

                                $sql .= ‘,’;

                            }

                        }

 

                        $sql.= “);\n”;

                    }

                }

 

                $sql.=”\n\n\n”;

 

                echo ” OK” . “

“;

            }

        }

        catch (Exception $e)

        {

            var_dump($e->getMessage());

            return false;

        }

 

        return $this->saveFile($sql, $outputDir);

    }

 

    /**

     * Salvare il file SQL

     * @param string $sql

     */

    protected function saveFile(&$sql, $outputDir = ‘.’)

    {

        if (!$sql) return false;

 

        try

        {

            $handle = fopen($outputDir.’/db-backup-‘.$this->dbName.’-‘.date(“Ymd-His”, time()).’.sql’,’w+’);

            fwrite($handle, $sql);

            fclose($handle);

        }

        catch (Exception $e)

        {

            var_dump($e->getMessage());

            return false;

        }

 

        return true;

    }

}

 

?>

 

 

HostingPerte offre il servizio di backup gestito tramite R1Soft Server Backup Manager.  R1Soft è un software server che consente la protezione dei dati ed il disaster recovery per i server Linux e workstation che eseguono Microsoft Windows e sistemi operativi Linux.
R1Soft Server Backup Manager protegge i dati del volume del disco utilizzando la sincronizzazione in rete, l’archiviazione point-in-time, istantanee nella memoria su disco-based.

L'articolo Backup di un database utilizzando solo PHP sembra essere il primo su Blog Hosting Per Te.


Leggi dell'altro »







Hosting Per Te
© 2015 - ARMADA
Partita IVA 00873530943
REA IS-38469
Tel +39 06452216038
Fax +39 0689280222
Il tuo IP: 54.224.103.239
Hosting Per Te Facebook   Hosting Per Te Twitter   Hosting Per Te Blog
ARMADA
Chiedi ad un nostro Operatore