Znalazłem taki skrypcik do kopii bazy MySql:
<?
$password = "test"; // hasło jakim chcesz przywracać kopię zapasow±
$bazadanych = "xx"; // Baza danych której kopię Chcesz zrobić
$host = "localhost"; // Nazwa Hosta MySQL
$user = "xx"; // Nazwa użytkownika MySQL
$haslo = "xx"; // Hasło dostępu do mysql
for($j=0; $j<$liczbatabel; $j++)
{
$zapytanietworztabele[$j]="\$dodaj[]=\"DROP TABLE $tabela\";\n\$dodaj[]=\"CREATE TABLE $tabela(";
$dodopisu[$j]="$$tabela=\"INSERT INTO $tabela(";
$zapytanietworztabele[$j].="$kolumna[Field] $kolumna[Type] not null, ";
$kolumna1[]="$kolumna[Field]";
$dodopisu[$j].="$kolumna[Field], ";
}
$zapytanietworztabele[$j]=substr($zapytanietworztabele[$j], 0
, -2
); $zapytanietworztabele[$j].=")\";";
$dodopisu[$j]=substr($dodopisu[$j], 0
, -2
); $dodopisu[$j].=") VALUES\";";
$wybierzdaneztabeli1="SELECT * FROM $tabela";
$wybierzdaneztabeli2=mysql_query($wybierzdaneztabeli1, $baza); $ztabeli="\$dodaj[]=\"$$tabela(";
for($i=0;$i<count($kolumna1);$i++){
$nazwagh="$kolumna1[$i]";
$$nazwagh=$dane[$nazwagh];
$dana=$$nazwagh;
$ztabeli.="\\\"$dana\\\", ";
}
$ztabeli=substr($ztabeli, 0
, -2
); $ztabeli.=")\";";
$dopiszdotabeli[]=$ztabeli;
}
$kolumna1="";
}
$dopisz="<HTML>
<HEAD>
<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=iso-8859-2\">
<title>KOPIA ZAPASOWA MySQL BAZY DANYCH $bazadanych</title>
<body bgcolor=\"#A5A5FF\" text=\"white\">
<?
/*
ZAPISYWANIE KOPII ZAPASOWEJ MySQL'a
POWERED BY OCCULKOT
die4pink_pain / dieforpaulina
occulkot@skrzynka.pl
*/
if(empty(\$backup)){
echo\"<form method=post action=$bazadanych.php3>
<input type=password name=backup>
</form>\";
}elseif(\$backup==\"$password\"){
echo\"<h1>Przywracam kopię zapasow±</h1>\";
\$baza = @mysql_connect(\"$host\",\"$user\",\"$haslo\");
mysql_select_db(\"$bazadanych\", \$baza);
";
for($j=0;$j<count($zapytanietworztabele);$j++){
$dopisz.="$zapytanietworztabele[$j]\n";
}
for($j=0;$j<count($dodopisu);$j++){
$dopisz.="$dodopisu[$j]\n";
}
for($j=0;$j<count($dopiszdotabeli);$j++){
$dopisz.="$dopiszdotabeli[$j]\n";
}
$dopisz.="
\$ii=count(\$dodaj);
for(\$i=0;\$i<\$ii;\$i++){
\$zapytanie=mysql_query(\$dodaj[\$i], \$baza);
Echo\"Wykonano <kbd>\$dodaj[\$i]</kbd><br>\";
}
}
?>
";
$backupfile=fopen("$bazadanych.php3", "w"); fputs($backupfile, $dopisz);
?>
Gdy to uruchamiam wyskakuje:
Kod
Fatal error: Allowed memory size of 26214400 bytes exhausted (tried to allocate 35 bytes) in /xxx/test/mysql.php3 on line 36
Co jest przyczyną błedu i jak to naprawić? Proszę o pomoc.
Ten post edytował maciekzl 24.01.2006, 14:18:07