|
Citaat:
Chimera schreef:
Waarom buffer je dat in hemelsnaam? Heeft absoluut geen enkel nut.
|
*met hoofd tegen tafel slaat*
Bedankt! Ik was vergeten, dat er hier helemaal geen buffer nodig is. Dat komt daardoor, dat het in het orignele script in een template moet worden ingevoegd, waarvoor het eerst in een variable moet worden 'gepakt'.
Maar goed, even een snelle fix dus:
PHP-code:
<?
/* start config (0 = nee, 1 = ja) */
$host = "localhost"; /* adres of IP van de MySQL-server */
$user = ""; /* Gebruikersnaam op bovenstaande host */
$pass = ""; /* Wachtwoord voor bovenstaatnde gebruiker */
$db = ""; /* Naam van de database, waarvan de backup moet worden gemaakt */
$drop = 0; /* Beginnen met DROP TABLE? */
$complete = 0; /* Complete INSERTS? (De Queries zien er dan zo uit: INSERT INTO tabel (velden) VALUES()) */
$extended = 0; /* Uitgebreide INSERTS? (Alle data uit een tabel word in één query gestopt) */
/* end config */
function tablehead($table,$drop=0){
global $db;
$fields = mysql_list_fields($db, $table);
$cols = mysql_num_fields($fields);
for($i = 0; $i < $cols; $i++){
unset($data);
$data[name] = mysql_field_name($fields, $i);
$data[type] = mysql_field_type($fields, $i);
$data[flag] = mysql_field_flags($fields, $i);
$data[leng] = "(".mysql_field_len($fields, $i).")";
$data[flag] = eregi_replace("not_null", "not null", $data[flag]);
$data[flag] = eregi_replace("primary_key", "primary key", $data[flag]);
$data[flag] = eregi_replace("blob", "", $data[flag]);
$data[flag] = eregi_replace("binary", "", $data[flag]);
$data[flag] = eregi_replace("unique_key", "unique", $data[flag]);
$data[flag] = eregi_replace("multiple_key", "", $data[flag]);
$data[type] = eregi_replace("string", "varchar", $data[type]);
if(strstr($data[flag], "unsigned")){
$data[flag] = eregi_replace("unsigned", "", $data[flag]);
$data[flag] = "unsigned ".$data[flag];
}
if($data[type] == "blob") $data[leng] = "";
if($data[type] == "datetime") $data[leng] = "";
$fields2 .= ",\n$data[name] $data[type]$data[leng] $data[flag]";
$output[flds] .= ",'".$data[name]."'";
}
$fields2 = ereg_replace("^,","",$fields2);
$output[flds] = ereg_replace("^,","",$output[flds]);
if($drop) $showdrop = "\n# Tabel \"".$table."\" wissen\nDROP TABLE IF EXISTS ".$table.";\n#";
$output[head] = "#\n############################\n#".$showdrop."\n# Struktuur van tabel \"$table\"\nCREATE TABLE $table ($fields2\n);\r\n";
return $output;
}
function tablecontent($table,$complete=0,$extended=0){
global $db;
if($complete){
$fieldnames = tablehead($table);
$fieldnames = "(".$fieldnames[flds].")";
}
$result = mysql_query("SELECT * FROM ".$table);
while($data = mysql_fetch_array($result)){
unset($valuebits);
for($j = 0; $j < mysql_num_fields(mysql_list_fields($db, $table)); $j++){
$valuebits .= ", '".$data[$j]."'";
}
$valuebits = eregi_replace("^, ","",$valuebits);
if($extended) $insertbit .= ",\n(".$valuebits.")";
else $insertbit .= "INSERT INTO ".$table.$fieldnames." VALUES(".$valuebits.");\n";
}
if($extended){
$insertbit = eregi_replace("^,\n","",$insertbit);
$insertbit = "INSERT INTO ".$table.$fieldnames." VALUES ".$insertbit.";";
}
$var1 = "\\";
$var2 = "\\";
$insertbit = eregi_replace($var1,$var2,$insertbit);
if(mysql_num_rows($result)) $output = "# Data in tabel \"".$table."\"\n".$insertbit."\n";
mysql_free_result($result);
return $output;
}
mysql_connect($host, $user, $pass) or die("Kan geen verbinding maken met MySQL-Server ".$host);
mysql_select_db($db) or die("De opgegeven database vestaat niet");
header("content-type: text/plain");
$tables = mysql_list_tables($db);
$ii = mysql_num_rows($tables);
for($i = 0; $i < $ii; $i++){
$table = mysql_tablename($tables, $i);
$head = tablehead($table, $drop);
$content = tablecontent($table, $complete, $extended);
echo $head["head"].$content;
}
mysql_free_result($tables);
?>
Mocht iemand nog geïnteresseerd zijn in de databrok-versie, hier is 'ie:
PHP-code:
<?php
/* start config (0 = nee, 1 = ja) */
$host = "localhost"; /* adres of IP van de MySQL-server */
$user = ""; /* Gebruikersnaam op bovenstaande host */
$pass = ""; /* Wachtwoord voor bovenstaatnde gebruiker */
$db = ""; /* Naam van de database, waarvan de backup moet worden gemaakt */
$drop = 0; /* Beginnen met DROP TABLE? */
$complete = 0; /* Complete INSERTS? (De Queries zien er dan zo uit: INSERT INTO tabel (velden) VALUES()) */
$extended = 0; /* Uitgebreide INSERTS? (Alle data uit een tabel word in één query gestopt) */
$entries = 5; /* Hoeveel entries moeten er per keer worden gebackupped */
/* end config */
if(!$start) $start = 0;
function tablehead($table,$drop=0){
global $db;
$fields = mysql_list_fields($db, $table);
$cols = mysql_num_fields($fields);
for($i = 0; $i < $cols; $i++){
unset($data);
$data[name] = mysql_field_name($fields, $i);
$data[type] = mysql_field_type($fields, $i);
$data[flag] = mysql_field_flags($fields, $i);
$data[leng] = "(".mysql_field_len($fields, $i).")";
$data[flag] = eregi_replace("not_null", "not null", $data[flag]);
$data[flag] = eregi_replace("primary_key", "primary key", $data[flag]);
$data[flag] = eregi_replace("blob", "", $data[flag]);
$data[flag] = eregi_replace("binary", "", $data[flag]);
$data[flag] = eregi_replace("unique_key", "unique", $data[flag]);
$data[flag] = eregi_replace("multiple_key", "", $data[flag]);
$data[type] = eregi_replace("string", "varchar", $data[type]);
if(strstr($data[flag], "unsigned")){
$data[flag] = eregi_replace("unsigned", "", $data[flag]);
$data[flag] = "unsigned ".$data[flag];
}
if($data[type] == "blob") $data[leng] = "";
if($data[type] == "datetime") $data[leng] = "";
$fields2 .= ",\n$data[name] $data[type]$data[leng] $data[flag]";
$output[flds] .= ",'".$data[name]."'";
}
$fields2 = ereg_replace("^,","",$fields2);
$output[flds] = ereg_replace("^,","",$output[flds]);
if($drop) $showdrop = "\n# Tabel \"".$table."\" wissen\nDROP TABLE IF EXISTS ".$table.";\n#";
$output[head] = "#\n############################\n#".$showdrop."\n# Struktuur van tabel \"$table\"\nCREATE TABLE $table ($fields2\n);\r\n";
return $output;
}
function tablecontent($table,$complete=0,$extended=0,$start=0){
global $db, $entries;
if($start) $limit = " LIMIT ".$start.",".$entries;
else $limit = " LIMIT 0,".$entries;
if($complete){
$fieldnames = tablehead($table);
$fieldnames = "(".$fieldnames[flds].")";
}
$result = mysql_query("SELECT * FROM ".$table.$limit);
while($data = mysql_fetch_array($result)){
unset($valuebits);
for($j = 0; $j < mysql_num_fields(mysql_list_fields($db, $table)); $j++){
$valuebits .= ", '".$data[$j]."'";
}
$valuebits = eregi_replace("^, ","",$valuebits);
if($extended) $insertbit .= ",\n(".$valuebits.")";
else $insertbit .= "INSERT INTO ".$table.$fieldnames." VALUES(".$valuebits.");\n";
}
if($extended){
$insertbit = eregi_replace("^,\n","",$insertbit);
$insertbit = "INSERT INTO ".$table.$fieldnames." VALUES ".$insertbit.";";
}
$var1 = "\\\\";
$var2 = "\\\\";
$insertbit = eregi_replace($var1,$var2,$insertbit);
$output[0] = mysql_num_rows($result);
if($output[0]) $output[1] = "# Data in tabel \"".$table."\"\n".$insertbit."\n";
mysql_free_result($result);
return $output;
}
mysql_connect($host, $user, $pass) or die("Kan geen verbinding maken met MySQL-Server ".$host);
mysql_select_db($db) or die("De opgegeven database vestaat niet");
$tables = mysql_list_tables($db);
$ii = mysql_num_rows($tables);
if(!$step){
for($i = 0; $i < $ii; $i++){
$table = mysql_tablename($tables, $i);
$head = tablehead($table, $drop);
$output .= $head["head"];
}
mysql_free_result($tables);
$ntable = 0;
}
else{
$btable = mysql_tablename($tables, $ntable);
$output = tablecontent($btable, $complete, $extended, $start);
$otable = $ntable;
if($output[0] < $entries){
$ntable++;
$start = 0;
}
else $start = $start + $entries;
$output = htmlentities($output[1]);
if(!$output) $output = "Geen entries gevonden in tabel ".$btable;
if($otable < $ntable && $otable == ($ii - 1)) $ended = 1;
}
?>
<html>
<body>
<pre><?php echo $output; ?></pre><br>
<?php if(!$ended){ ?>
<a href="<?php echo $PHP_SELF; ?>?step=1&start=<?php echo $start; ?>&ntable=<?php echo $ntable; ?>">Volgende <?php echo $entries; ?> entries</a>
<?php } else { ?>
Backup voltooid
<?php } ?>
</body>
</html>
E D I T E D: Pass & user gewist...
Laatst gewijzigd op 25-07-2002 om 17:59.
|