Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333

    Una funzione per il dumpmysql che funziona solo con una tabella alla volta

    Ciao a tutti,
    questa funzione per il backup delle mie tabelle mariadb funziona benissimo e il restore sia in locale su XAMPP sia in remoto non ha mai fatto errori.
    Produce un file con desinenza .db
    Il problema � che funziona bene solo con una tabella alla volta mentre se ne metto 2 o pi� di 2 sembra che vada tutto bene ma il restore non funziona
    Cosa pu� esserci di sbagliato?
    Grazie
    Io la funzione la chiamo cos�:

    back('primaatab,secondarab,terzatab','tabmariadbsi to');


    Codice PHP:
      function back($tables,$nome)  {   require_once('dbconf.php');  $hostDB_HOST;  $userDB_USER;  $passDB_PASS;  $db=  DB_DB;  $backupdir 'backs';  $today =  getdate();  $day $today['mday'];  if ($day 10) {     $day "0$day";  }  $month $today['mon'];  if ($month 10) {     $month "0$month";  }  $year $today['year'];  $hour $today['hours'];  $min $today['minutes'];  $sec "00";  exec(sprintf(   'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s%s%s-%s%s.ql',   $host,   $user,   $pass,   $db.' '.$tables,   getenv('DOCUMENT_ROOT'),   $backupdir,   $nome,   $year,   $month,   $day,   $hour,   $min  ));  return null;} 
    back('unoatab,duerab,tretab','tabmariadbsito');

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    scusate se il codice è appiccicato ma io l'avevo messo riga per riga e non riesco a modificarlo perchè l'editor html.it lo riappiccica
    Inoltre l'editor da tempo non mette le vocali accentate ma al loro posto appare �
    Provo a rimetterlo riga per riga
    codice:
    function back($tables,$nome) { require_once('dbconf.php'); $host= DB_HOST; $user= DB_USER; $pass= DB_PASS; $db= DB_DB; $backupdir = 'backs'; $today = getdate(); $day = $today['mday']; if ($day < 10) { $day = "0$day"; } $month = $today['mon']; if ($month < 10) { $month = "0$month"; } $year = $today['year']; $hour = $today['hours']; $min = $today['minutes']; $sec = "00"; exec(sprintf( 'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s%s%s-%s%s.ql', $host, $user, $pass, $db.' '.$tables, getenv('DOCUMENT_ROOT'), $backupdir, $nome, $year, $month, $day, $hour, $min )); return null;}
    Ultima modifica di jomla; 28-05-2017 a 09:27

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Non so se dipenda da questo ma, dal manuale, le tabelle vanno separare da spazio non dalla virgola

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    Quote Originariamente inviata da boots Visualizza il messaggio
    Non so se dipenda da questo ma, dal manuale, le tabelle vanno separare da spazio non dalla virgola

    ho provato con lo spazio ma se chiedo di inserire 2 o più tabelle il restore verso localhost xampp funziona mentre fa errore verso server linux online.


    Se chiedo invece di inserire una tabella soltanto alla volta il restore funziona sia in locale sia online verso server linux

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    cambiando questa riga da così
    exec(sprintf('mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s%s%s-%s%s.ql',$host,$user,$pass,$db.' '.$tables,getenv('DOCUMENT_ROOT'),$backupdir,$nome,$year,$month,$day,$hour,$min ));
    a così
    exec(sprintf('mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s%s%s-%s%s.sql.gzip',$host,$user,$pass,$db.' '.$tables,getenv('DOCUMENT_ROOT'),$backupdir,$nome,$year,$month,$day,$hour,$min ));
    funziona

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 © 2024 vBulletin Solutions, Inc. All rights reserved.