Potřebuji exportovat databázy.
Jednoduchý script v php už sem sešmolil ale teď by mě zajímalo jak na tu diakritiku.
Omlouvám se pokud sem zvolil blbou kategorii ale přišlo mě že toto je spíše téma na MySQL
Zde je zdrojoví kód (Vím že tam je dost chyb ale je to dělané na rychlo jelikož to docela spěchá a ty chyby za tu diakritiku nemůžou..)
<?php
$kodovani = "utf8";
$db = "databaze";
mysql_connect("host","user","pass");
mysql_select_db("db");
$text = zalohuj($db,$kodovani="",$soubor="");
echo "<textarea cols='120' rows='35'>$text</textarea>";
function zalohuj($db,$kodovani="",$soubor=""){
if(!empty($kodovani))
@mysql_query("SET NAMES '$kodovani'");
function keys($prefix,$array){
$pocet = count($array);
$posledni = $pocet-1;
if($pocet == 0)
return;
for($i = 0; $i<$pocet; $i++){
if($i != $posledni)
$carka = ",";
else
$carka = "";
$radky .= "`$array[$i]`$carka";
}
return ",\n$prefix($radky)";
}
$sql = mysql_query("SHOW TABLE STATUS FROM $db");
while($data = mysql_fetch_array($sql)):
$text .= "--\n-- Struktura tabulky $data[0]\n--\n\n";
$text .= "CREATE TABLE `$data[0]`(\n";
$sqll = mysql_query("show columns from $data[0]");
$e = true;
while($dataa = mysql_fetch_array($sqll)):
if($e){
$e = false;
}
else
$text .= ",\n";
$null = ($dataa[2] == "NO")? "NOT NULL":"NULL";
$default = !empty($dataa[4])? " DEFAULT '$dataa[4]'":false;
if($default == " DEFAULT 'CURRENT_TIMESTAMP'") $default = " DEFAULT CURRENT_TIMESTAMP";
if($dataa[3] == "PRI") $PRI[] = $dataa[0];
if($dataa[3] == "UNI") $UNI[] = $dataa[0];
if($dataa[3] == "MUL") $MUL[] = $dataa[0];
$extra = !empty($dataa[5])? " ".$dataa[5]:false;
$text .= "`$dataa[0]` $dataa[1] $null$default$extra";
endwhile;
$primary = keys("PRIMARY KEY",$PRI);
$unique = keys("UNIQUE KEY",$UNI);
$mul = keys("INDEX",$MUL);
$text .= "$primary$unique$mul\n) ENGINE=$data[Engine] COLLATE=$data[Collation];\n\n";
unset($PRI,$UNI,$MUL);
#data
$text .= "--\n-- Data tabulky $data[0]\n--\n\n";
$query = mysql_query("SELECT * FROM $data[0]");
while($fetch = mysql_fetch_array($query)){
$pocet_sloupcu = count($fetch)/2;
$i = 0;
while($i < $pocet_sloupcu){
if($i < $pocet_sloupcu-1)
$carka = ",";
else
$carka = "";
$values .= "'".mysql_escape_string($fetch[$i])."'$carka";
$i++;
}
$text .= "\nINSERT INTO `$data[0]` VALUES($values);";
unset($values);
}
endwhile;
if(!empty($soubor)){
$fp = @fopen($soubor,"w+");
$fw = @fwrite($fp,$text);
@fclose($fp);
}
return $text;
}
mysql_close();
?>