Mam proźbę - możecie mi pomóc zoptymalizować kod? Aby szybciej backup wykonywało i ogólnie przyśpieszyć.
<?php
/*
Skrypt został napisany przez NetJaro.
Komercyjne rozpowszechnianie skryptu jest ZABRONIONE!
Skrypt jest DARMOWY! Można go dowolnie modyfikować.
Instalacja:
CHMOD 777 na folder w którym znajduje się skrypt.
Wymagania:
Jeżeli chcesz, aby skrypt wysyłał na maila backup, serwer MUSI obsługiwać funkcj
mail();
*/
$db_name = 'upload'; //wpisz tutaj bazę której chcesz zrobić backup
$sql = '';
$crlf = \"rn\";
$sql .= '#' . $crlf;
$sql .= '# Zrzut bazy danych ' . $crlf;
$sql .= '# Wygenerowano: ' . $time . $crlf;
$sql .= '#' . $crlf . $crlf;
$table_name = $row[0];
$sql .= '#' . $crlf;
$sql .= '# Struktura tabeli ' . $table_name . $crlf;
$sql .= '#' . $crlf;
$sql .= 'DROP TABLE IF EXISTS ' . $table_name . ';' . $crlf;
$sql .= 'CREATE TABLE ' . $table_name . ' ( ' . $crlf;
$res2 = mysql_query('SHOW FIELDS FROM ' . $table_name); $sql .= ' ';
$sql .= '`'.$fields['Field'].'`' . ' ' . $fields['Type'];
if (!empty($fields['Default'])) { $sql .= ' DEFAULT '' . $fields['Default'] . ''';
}
if ($fields['Null'] != 'Yes') {
$sql .= ' NOT NULL';
}
if (!empty($fields['Extra'])) { $sql .= ' ' . $fields['Extra'];
}
$sql .= ',' . $crlf;
$table_fields[] = $fields['Field'];
}
$index = '';
$kname = $keys['Key_name'];
if(($kname != 'PRIMARY') && ($keys['Non_unique'] == 0)) {
$kname = 'UNIQUE|' . $kname;
}
$index[$kname] = array(); $index[$kname][] = $keys['Column_name'];
}
while(list
($n, $columns) = @each($index)) { if ($n == 'PRIMARY') {
$sql .= ' PRIMARY KEY (`' . implode($columns, '`, `') . '`),'; }
elseif (substr($n, 0, 6) == 'UNIQUE') { $sql .= ' UNIQUE `' . substr($n, 7) . '` (`' . implode($columns, '`, `') . '`),'; }
else {
$sql .= ' KEY `' . $n . '` (`' . implode($columns, '`, `') . '`),'; }
$sql .= $crlf;
}
$sql .= ');' . $crlf;
$sql .= $crlf . $crlf;
$sql .= '#' . $crlf;
$sql .= '# Dane z tabeli ' . $table_name . $crlf;
$sql .= '#' . $crlf;
$sql .= 'INSERT INTO `' . $table_name . '` (`' . implode('`, `', $table_fields) . '`) VALUES(';
$field_count = count($table_fields); for ($i = 0; $i < $field_count; $i++) {
$f_data[] .= ''' . $data[$i] . ''';
}
$sql .= ');' . $crlf;
}
$sql .= $crlf . $crlf;
}
$file = fopen(\"$data.sql\", \"w\"); // wysyłanie na maila
$myMail = \"TwojMail@costam.pl\"; // Zmien na swój adres E-mail
$myName = \"Imie Nazwisko\"; // Zmien na swoje imie i nazwisko
$temat = \"temat\";
$boundary = \"-->===_54654747_===<---->>4255==_\";
$head = \"From: $myName <$myMail>n\";
$head = $head . \"Reply-To: $myMailn\";
$head = $head . \"X-Mailer: phpn\";
$head = $head . \"X-Sender: <$myMail>n\";
$head = $head . \"Return-Path: <$myMail>n\"; // adres zwrotny dla błędów
$head = $head . \"MIME-version: 1.0n\";
$head = $head . \"Content-type: multipart/mixed; \";
$head = $head . \"boundary=\"$boundary\"n\";
$head = $head . \"Content-transfer-encoding: 7BITn\";
$head = $head . \"X-attachments: $data.sql;nn\";
$mesg = \"--\" . $boundary . \"n\"; //pamiętamy dwa minusy na początku
$mesg = $mesg . \"Content-Type: text/plain; charset=\"us-ascii\"nn\";
$mesg = $mesg . $message . \"n\";
$mesg = $mesg . \"--\" . $boundary . \"n\"; //pamiętamy dwa minusy na początku
$mesg = $mesg . \"Content-type: \" . $filename_type . \"; name=\"$data.sql\";n\";
$mesg = $mesg . \"Content-Transfer-Encoding: base64n\";
$mesg = $mesg . \"Content-disposition: attachment; filename= \"$data.sql\"nn\";
$mesg = $mesg . \"--\" . $boundary . \"-- n\"; //pamiętamy dwa minusy na początku i na końcu
mail(\"$myMail\",$temat,$mesg,$head); ?>