amikor a phpmyadmin elhal exportálásnál

egyéb dolgok, amik már nem férnek bele másik kategóriába

amikor a phpmyadmin elhal exportálásnál

HozzászólásSzerző: djjjozsi » 2014.01.17. 09:40

Sziasztok.
Azoknak, akik szeretnének néha mentést készíteni, de phpmyadmin kidobja,
arra van egy kis PHP programom.
Védelem nélkül viszont ne tedd sose ki, mert így exportálhatják a tábláidat.


Használata:
Készíts el tábla listát, mentsd el a $kell PHP változóhoz. MAjd amelyikre klikkelsz egy SQL fájlba beírja. FTP-ről meg az elkészült fájlt letöltheted.
Reméljük gyors lesz okhost, de amig nem gyors és kell a mentés, ilyen okossággal talán áthidalható. Minimális helpet kérhettek a témában.

FIGYELEM: az SQL DUMP tartalmaz DROP TABLE parancsot, ami törli a meglévő táblát amikor az elkészült SQL fájlt importálod phpmyadminba!


Kód: Egész kijelölése
<?php
header('Content-Type: text/html; charset=utf-8');
$hostname = '___'; //// specify host, i.e. 'localhost'
$user = '___'; //// specify username
$pass = '___'; //// specify password
$dbase = '___'; //// specify database name

$connection = mysql_connect("$hostname" , "$user" , "$pass")
or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");
mysql_query("SET NAMES utf8");

$kell = "egyiktabla
masiktabla";

$o = explode("\r" , $kell);
foreach($o AS $oo) {
    echo "<a href='?tabla=$oo'>$oo</a> <br />";
}

if (isset($_GET["tabla"])) {
    $table = $_GET["tabla"];
    // cycle through
    $result = mysql_query('SELECT * FROM ' . $table);
    $num_fields = mysql_num_fields($result);

    $return .= 'DROP TABLE ' . $table . ';';
    $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE ' . $table));
    $return .= "\n\n" . $row2[1] . ";\n\n";

    for ($i = 0; $i < $num_fields; $i++) {
        while ($row = mysql_fetch_row($result)) {
            $return .= 'INSERT INTO ' . $table . ' VALUES(';
            for($j = 0; $j < $num_fields; $j++) {
                $row[$j] = addslashes($row[$j]);
                $row[$j] = ereg_replace("\n", "\\n", $row[$j]);
                if (isset($row[$j])) {
                    $return .= '"' . $row[$j] . '"' ;
                } else {
                    $return .= '""';
                }
                if ($j < ($num_fields-1)) {
                    $return .= ',';
                }
            }
            $return .= ");\n";
        }
    }
    $return .= "\n\n\n";
    // save file
    $handle = fopen('db-backup-' . time() . '-' . $table . '.sql', 'w+');
    fwrite($handle, $return);
    fclose($handle);
    echo "$tabla elmentve!";
}

?>
djjjozsi
 
Hozzászólások: 3
Csatlakozott: 2010.09.30. 15:23

Vissza: Segédletek, Tippek, Egyebek

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég

cron