Fabyo 66 Denunciar post Postado Março 9, 2005 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
Leandro Vieira Pinho 0 Denunciar post Postado Março 23, 2005 não cheguei a testar,mas teria algum que funcione com php 4? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 23, 2005 http://www.imasters.com.br/forum/index.php...ndpost&p=326038 Compartilhar este post Link para o post Compartilhar em outros sites
fsphp 0 Denunciar post Postado Junho 21, 2006 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
Douglas 6 Denunciar post Postado Junho 24, 2006 Se o servidor for linux, veja as permissões CHMOD. Compartilhar este post Link para o post Compartilhar em outros sites