Guest User

Untitled

a guest
Oct 20th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. <?php
  2.  
  3. define('HOST', 'localhost');
  4. define('USER', 'root');
  5. define('PASS', '');
  6. define('BASE', 'base');
  7. define('CHAR', 'utf8');
  8.  
  9. try {
  10.     $pdo = new Pdo('mysql:host='.HOST.';dbname='.BASE.';charset='.CHAR, USER, PASS);
  11.     $pdo->setAttribute(PDO::ATTR_ERRMODE, ERRMODE_WARNING);
  12. } catch(PDOException $e) {
  13.     exit('Ошибка подключения к Базе Данных.<br>'.$e->getMessage());
  14. }
  15.  
  16. function get_tables() {
  17.     GLOBAL $pdo;
  18.     $sql = $pdo->query("SHOW TABLES");
  19.     return $sql->fetchAll(PDO::FETCH_NUM);
  20. }
  21.  
  22. function get_create_sql($table) {
  23.     GLOBAL $pdo;
  24.     $sql = $pdo->query("SHOW CREATE TABLE `$table`");
  25.     return $sql->fetch(PDO::FETCH_NUM);
  26. }
  27.  
  28. function get_table_data($table) {
  29.     GLOBAL $pdo;
  30.     $sql = $pdo->query("SELECT * FROM `$table`");
  31.     while($res = $sql->fetch(PDO::FETCH_ASSOC)) {
  32.         $k = []; $v = [];
  33.         foreach($res as $key=>$val) {
  34.             $k[] = '`'.$key.'`';
  35.             $v[] = $pdo->quote($val);
  36.         }
  37.  
  38.         if(!$start) {
  39.             echo PHP_EOL."INSERT INTO `$table` (".implode(', ', $k).") VALUES";
  40.         }
  41.  
  42.         if($start) {
  43.             echo ',';
  44.         } else {
  45.             $start = true;
  46.         }
  47.  
  48.         echo PHP_EOL.'('.implode(', ', $v).')';
  49.     }
  50.     
  51. }
  52.  
  53.  
  54. header('Content-type: application/sql');
  55. header('Content-Disposition: attachment; filename="'.date('dmy_His').'.sql"');
  56.  
  57. $tables = get_tables();
  58. foreach($tables as $table) {
  59.     $table = array_shift($table);
  60.     $create_sql = get_create_sql($table);
  61.     $create_sql = $create_sql[1];
  62.     echo $create_sql.';'.PHP_EOL.PHP_EOL;
  63.     echo get_table_data($table).';'.PHP_EOL;
  64. }
  65.  
  66. ?>
Add Comment
Please, Sign In to add comment