Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kopia MySql z poziomu php
maciekzl
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 22.09.2005

Ostrzeżenie: (0%)
-----


Znalazłem taki skrypcik do kopii bazy MySql:

  1. <?
  2.  
  3.  
  4. $password    = "test";   // hasło jakim chcesz przywracać kopię zapasow&plusmn;
  5. $bazadanych  = "xx";  // Baza danych której kopię Chcesz zrobić
  6. $host        = "localhost"; // Nazwa Hosta MySQL
  7. $user        = "xx";   // Nazwa użytkownika MySQL
  8. $haslo       = "xx";   // Hasło dostępu do mysql
  9.  
  10.  
  11. $baza=mysql_connect("$host", "$user", "$haslo");
  12.  
  13. mysql_select_db("$bazadanych", $baza);
  14.  
  15. $tabele=mysql_list_tables($bazadanych);
  16. $liczbatabel=mysql_num_rows($tabele);
  17. for($j=0; $j<$liczbatabel; $j++)
  18. {
  19. $tabela=mysql_tablename($tabele, $j);
  20. $zapytanietworztabele[$j]="\$dodaj[]=\"DROP TABLE $tabela\";\n\$dodaj[]=\"CREATE TABLE $tabela(";
  21. $dodopisu[$j]="$$tabela=\"INSERT INTO $tabela(";
  22.  
  23. $kolumny=mysql_db_query($bazadanych, "SHOW FIELDS FROM $tabela");
  24. while($kolumna=mysql_fetch_array($kolumny)){
  25. $zapytanietworztabele[$j].="$kolumna[Field] $kolumna[Type] not null, ";
  26. $kolumna1[]="$kolumna[Field]";
  27. $dodopisu[$j].="$kolumna[Field], ";
  28. }
  29. $zapytanietworztabele[$j]=substr($zapytanietworztabele[$j], 0, -2);
  30. $zapytanietworztabele[$j].=")\";";
  31. $dodopisu[$j]=substr($dodopisu[$j], 0, -2);
  32. $dodopisu[$j].=") VALUES\";";
  33.  
  34. $wybierzdaneztabeli1="SELECT * FROM $tabela";
  35. $wybierzdaneztabeli2=mysql_query($wybierzdaneztabeli1, $baza);
  36. while($dane=mysql_fetch_array($wybierzdaneztabeli2)){
  37. $ztabeli="\$dodaj[]=\"$$tabela(";
  38. for($i=0;$i<count($kolumna1);$i++){
  39. $nazwagh="$kolumna1[$i]";
  40. $$nazwagh=$dane[$nazwagh];
  41. $dana=$$nazwagh;
  42. $ztabeli.="\\\"$dana\\\", ";
  43. }
  44. $ztabeli=substr($ztabeli, 0, -2);
  45. $ztabeli.=")\";";
  46. $dopiszdotabeli[]=$ztabeli;
  47. }
  48. $kolumna1="";
  49. }
  50.  
  51. $dopisz="<HTML>
  52. <HEAD>
  53. <META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=iso-8859-2\">
  54. <title>KOPIA ZAPASOWA MySQL BAZY DANYCH $bazadanych</title>
  55. <body bgcolor=\"#A5A5FF\" text=\"white\">
  56. <?
  57. /*
  58.  
  59. ZAPISYWANIE KOPII ZAPASOWEJ MySQL'a
  60.  
  61. POWERED BY OCCULKOT
  62.  
  63. die4pink_pain / dieforpaulina 
  64.  
  65. occulkot@skrzynka.pl
  66. */
  67. if(empty(\$backup)){
  68. echo\"<form method=post action=$bazadanych.php3>
  69. <input type=password name=backup>
  70. </form>\";
  71. }elseif(\$backup==\"$password\"){
  72. echo\"<h1>Przywracam kopię zapasow&plusmn;</h1>\";
  73. \$baza = @mysql_connect(\"$host\",\"$user\",\"$haslo\");
  74. mysql_select_db(\"$bazadanych\"\$baza);
  75.  
  76. ";
  77. for($j=0;$j<count($zapytanietworztabele);$j++){
  78. $dopisz.="$zapytanietworztabele[$j]\n";
  79. }
  80. for($j=0;$j<count($dodopisu);$j++){
  81. $dopisz.="$dodopisu[$j]\n";
  82. }
  83. for($j=0;$j<count($dopiszdotabeli);$j++){
  84. $dopisz.="$dopiszdotabeli[$j]\n";
  85. }
  86.  
  87. $dopisz.="
  88. \$ii=count(\$dodaj);
  89.  
  90. for(\$i=0;\$i<\$ii;\$i++){
  91. \$zapytanie=mysql_query(\$dodaj[\$i], \$baza);
  92. Echo\"Wykonano <kbd>\$dodaj[\$i]</kbd><br>\";
  93. }
  94. }
  95.  
  96. ?>
  97. ";
  98.  
  99. $backupfile=fopen("$bazadanych.php3", "w");
  100. fputs($backupfile, $dopisz);
  101.  
  102. ?>


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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:01