Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal...estou pela área novamente.
Encontrei aqui um código ótimo para gerar um backup do meu banco de dados. Ele gera um arquivo sql perfeitamente. Minha dúvida é em relação as aspas. O código nas linhas de CREATE TABLE e de INSERT coloca os valores com aspas simples e meu mysql compila sem erro mas não cria nenhuma tabela. Fiz um teste e mudei algumas linhas para aspas duplas e funcionou perfeitamente. Será que é a versão do meu mysql que bem antiga(3.23)??? Estou postando o código que peguei aqui mesmo no fórum. Um abraço a todos.
<?
if(mysql_connect("192.168.0.1","root","")) {
$re = mysql_query("SHOW DATABASES");
//echo "Conectado!!!<br><br>";
//echo $re; echo "Nao foi possivel conectar no banco de dados<br />Verifique os dados do config.php";
exit;
}
if (getenv("REQUEST_METHOD") == "POST") {
if(isset($_POST["tabelas"])) {
$tabela = $_POST["tabelas"];
$sql = "-- Sistema de backup - CIG\r\n";
$sql .= "-- Servidor: ". SERVIDOR ."\r\n";
$sql .= "-- Banco de dados: ". $_POST["db"] ."\r\n";
$sql .= "-- Data backup: ". date("d/m/Y H:i:s")."\r\n";
$sql .= "-- Versao MySQL: ". mysql_get_server_info()."\r\n";
$sql .= "-- Versao PHP: ". phpversion()."\r\n\r\n";
mysql_select_db($_POST["db"]);
$re = mysql_query("SHOW TABLE STATUS");
while($l = mysql_fetch_assoc($re)){
$tbl_stat[$l["Name"]] = $l["Auto_increment"];
}
for($i = 0; $i < count($tabela); $i++) {
$re2 = mysql_query("SHOW CREATE TABLE $tabela[$i]");
$sql .= "-- Estrutura da tabela $tabela[$i]\r\n\r\n";
$l2 = mysql_fetch_array($re2);
if($tbl_stat[$tabela[$i]] != "") {
$sql .= str_replace(" ", "\t", str_replace("`", "", $l2[1])). " AUTO_INCREMENT=". $tbl_stat[$tabela[$i]] .";\r\n\r\n";
} else {
$sql .= str_replace(" ", "\t", str_replace("`", "", $l2[1])).";\r\n\r\n";
}
$re3 = mysql_query("SHOW COLUMNS FROM $tabela[$i]");
$campos = "";
while ($row = mysql_fetch_array($re3)) {
$campos[] = $row[0];
}
$re4 = mysql_query("SELECT * FROM $tabela[$i]");
if(mysql_num_rows($re4)) {
while($dt = mysql_fetch_row($re4)) {
$valores = "";
for($j = 0; $j < sizeof($dt); $j++){
$valores[] .= "'". $dt[$j] ."'";
}
$campo = implode(", ", $campos);
$valor = implode(", ", $valores);
$sql .= "INSERT INTO $tabela[$i] ($campo) VALUES ($valor);\r\n";
}
}
$sql .= "\r\n";
}
echo "<pre>$sql</pre>";
if(isset($_POST["sql"])) {
$fp = fopen($_POST["db"].".sql", "w+");
if(!fwrite($fp, $sql)) {
echo "Erro na criação do arquivo, verifique a permissao de escrita";
exit;
}
fclose($fp);
}
exit;
}
}
?><html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Backup</title>
<script>
function seleciona_tudo(retorno){
var frm = document.form1;
for(i = 0; i < frm.length; i++) {
if(frm.elements[i].type == "select-multiple") {
for(var j = 0; j < frm.elements[i].options.length; j++) {
frm.elements[i].options[j].selected = retorno ? 'selected' : false;
}
}
}
}
function envia(val) {
document.form1.submit();
}
</script>
</head>
<form id="form1" name="form1" method="post" action="">
<label>Bancos</label><br />
<select name="db" id="db" onchange="envia(this.value)">
<?php
while($l = mysql_fetch_array($re)) {
if(isset($_POST["db"])) {
if($_POST["db"] == $l[0]) {
echo "\t<option value=\"{$l[0]}\" selected=\"selected\">$l[0]</option>\r\n";
} else {
echo "\t<option value=\"{$l[0]}\">$l[0]</option>\r\n";
}
} else {
echo "\t<option value=\"{$l[0]}\">$l[0]</option>\r\n";
}
}
?>
</select><br />
<input type="checkbox" name="checkbox" value="1" onclick="return seleciona_tudo(this.checked);" /><label>Seleciona tudo</label>
<br />
<select name="tabelas[]" size="5" multiple>
<?php $db = $_POST["db"];
$re = mysql_query("SHOW TABLES FROM $db");
while($l = mysql_fetch_array($re)) {
echo "<option value=\"{$l[0]}\">{$l[0]}</option>\r\n";
}
}
?>
</select><br />
<input type="checkbox" name="sql" value="1" /><label>Criar arquivo</label><br />
<input type="submit" name="botao" value="Backup" style="cursor:pointer;"/>
</form>
</body>
</html>
config.php
<?php
define("SERVIDOR", "localhost");
define("USUARIO", "usuario");
define("SENHA", "senha");
?>Carregando comentários...