Advertisement
Guest User

Untitled

a guest
May 16th, 2014
487
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.73 KB | None | 0 0
  1. $dbName = '';
  2.     $dbHost = 'localhost';
  3.     $dbUser = 'root';
  4.     $dbPass = '';
  5.  
  6.     $backupsDir = 'backups';
  7.  
  8.     $pdo = new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  9.     $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  10.     $sqlResult = $pdo -> query("SHOW tables FROM $dbName");
  11.  
  12.  
  13.     $sqlData = "-- Data wykonania kopii: ".date('d.m.Y')." r. o godzinie ".date('H:i')."
  14.    -- Baza: $dbName
  15.    SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";";
  16.  
  17.     while ($queryTable = $sqlResult -> fetch(PDO::FETCH_ASSOC)){
  18.         $sqlTable = $queryTable['Tables_in_'.$dbName];
  19.         $sqlResultB = $pdo -> query("SHOW CREATE TABLE $sqlTable");
  20.         $queryTableInfo = $sqlResultB -> fetch(PDO::FETCH_ASSOC);
  21.  
  22.  
  23.         $sqlData .= "\n\n--
  24.        -- Struktura dla tabeli `$sqlTable`
  25.        --\n\n";
  26.         $sqlData .= $queryTableInfo['Create Table'] . ";\n";
  27.         $sqlData .= "\n\n--
  28.        -- Wartości tabeli `$sqlTable`
  29.        --\n\n";
  30.  
  31.         $sqlResultC = $pdo -> query("SELECT * FROM $sqlTable");
  32.  
  33.    
  34.         while ($queryRecord = $sqlResultC -> fetch(PDO::FETCH_ASSOC)) {
  35.             $sqlData .= "INSERT INTO `$sqlTable` VALUES (";
  36.             $sqlRecord = '';
  37.             foreach( $queryRecord as $sqlField => $sqlValue ) {
  38.                 $sqlRecord .= "'$sqlValue',";
  39.             }
  40.             $sqlData .= substr($sqlRecord, 0, -1);
  41.             $sqlData .= ");\n";
  42.         }
  43.     }
  44.  
  45.    
  46.     file_put_contents($backupsDir.'/backup_'.$dbName.'_'.date('d_m_Y').'.sql', $sqlData);
  47.     echo 'Backup został zapisany.';
  48. }
  49.  
  50. catch(PDOException $e){
  51.     echo 'Połączenie nie mogło zostać utworzone: '.$e->getMessage();
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement