Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

Backup do banco mysql

Recommended Posts

Backup do banco mysql

 

Basta configurar a conexao com o banco e rodar o script

 

ele pega o banco completo com as tabelas e conteudo e cria um arquivo.sql com a data atual

 

obs: Feito com Mysqli ( versao das funções do mysql melhorada com varios recursos a mais e orientado a objeto )

só funciona com php5

esse script nao esta usando orientação a objetos ;)

http://br.php.net/mysqli

 

<?php

 

$link = mysqli_connect("localhost", "user", "senha", "nome_banco");

 

if (function_exists("set_time_limit") == 1 and get_cfg_var("safe_mode") == 0)

{

    @set_time_limit(0);

}

 

function sqlAddslashes($str = '', $is_like = false)

{

    if ($is_like)

  {

          $str = str_replace('\\', '\\\\\\\\', $str);

      }

 

  else

  {

          $str = str_replace('\\', '\\\\', $str);

      }

      $str = str_replace('\'', '\\\'', $str);

      return $str;

}

 

function dumptb($table)

{

    global $link;

   

  $nline = "\n";

    $dp = "CREATE TABLE $table ($nline\r\n";

    $firstfield = 1;

    $fields_array = mysqli_query($link, "SHOW FIELDS FROM $table");

 

    while ($field = mysqli_fetch_array($fields_array))

  {

          if (!$firstfield)

    {

              $dp .= ",\r\n";

          }

 

    else

    {

              $firstfield = 0;

          }

   

            $dp .= "\t" . $field["Field"] . " " . $field["Type"];

 

          if (isset($field['Default']) && $field['Default'] != '')

    {

              $dp .= ' default \'' . sqlAddslashes($field['Default']) . '\'';

          }

       

    if ($field['Null'] != 'YES')

    {

              $dp .= ' NOT NULL ';

     

          }

   

          if (!empty($field["Extra"]))

    {

              $dp .= $field["Extra"];

          }

      }

 

mysqli_free_result($fields_array);

$keysindex_array = mysqli_query($link, "SHOW KEYS FROM $table");

 

    while ($key = mysqli_fetch_array($keysindex_array))

  {

        $kname = $key['Key_name'];

        if ($kname != "PRIMARY" and $key['Non_unique'] == 0)

    {

              $kname = "UNIQUE|$kname";

          }

 

          $index[$kname][] = $key['Column_name'];

    }

        mysqli_free_result($keysindex_array);

 

while (list($kname, $columns) = @each($index))

  {

        $dp .= ",\n";

        $colnames = implode($columns, ",");

       

  if ($kname == 'PRIMARY')

    {

              $dp .= "\tPRIMARY KEY ($colnames)";

          }

 

  else

    {

              if (substr($kname, 0, 6) == 'UNIQUE')

      {

                  $kname = substr($kname, 7);

              }

                $dp .= "  KEY $kname ($colnames)";

          }

  }

 

$dp .= "\n);\n\n";

$rows = mysqli_query($link, "SELECT * FROM $table");

$numfields = mysqli_num_fields($rows);

 

    while ($row = mysqli_fetch_array($rows))

  {

        $dp .= "INSERT INTO $table VALUES(";

        $fieldcounter = -1;

        $firstfield = 1;

         

    while (++$fieldcounter

    {

              if (!$firstfield)

      {

                    $dp .= ' , ';

                }

     

      else

      {

                    $firstfield = 0;

                }

 

            if (!isset($row[$fieldcounter]))

        {

        $dp .= 'NULL';

      }

     

      else

      {

                    $dp .= "'" . mysqli_escape_string($link, $row[$fieldcounter]) . "'";

                }

          }

              $dp .= ");\n";

    }

        mysqli_free_result($rows);

        return $dp;

}

 

$table = mysqli_query($link, "SHOW tables");

unset($temp_buffer);

while ($row = mysqli_fetch_array($table))

  {

      if (!empty($row[0]))

    {

          $temp_buffer = dumptb($row[0]) . "\n\n\n";

      }

  }

 

$file_name = "backup_sql_" . date("d-m-Y") . ".txt";

 

 

$filehandle = fopen($file_name, 'w');

$result = mysqli_query($link, "SHOW tables");

 

while ($row = mysqli_fetch_array($result))

  {

      fwrite($filehandle, dumptb($row[0]) . "\n\n\n");

  }

  fclose($filehandle);

 

mysqli_close($link);

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei usar os dois scripts para backup mas nenhum funcionou. :(Ambos os casos, ao descompactar o diretório, não havia nenhum arquivo dentro. O que pode ser isso??

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.