Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zrzut tabeli do bazy z php
Forum PHP.pl > Forum > Przedszkole
right6
zrobiłem sobie w PHPmyadminie zrzut całej bazy danych do SQL.

i napisłem sobie skrypcik

  1. <?php
  2.  
  3.  
  4.  include("./config/baza.php");
  5.  
  6.  
  7.  
  8.  
  9. if( $_GET['md'] == 'dodaj' )
  10. {
  11.  
  12. $sql1 = $_POST['tresc'];
  13.  
  14. $wykonaj = mysql_query( $sql1 );
  15. $aa = mysql_error();
  16. echo"<hr />";
  17. echo"$aa";
  18. echo"<hr /><hr /><hr /><hr />";
  19. echo"$sql1";
  20. exit();
  21. }
  22.  
  23. <hr />
  24. <form action=\"./test.php?md=dodaj\" method=\"post\">
  25. <textarea cols=\"30\" rows=\"5\" name=\"tresc\"></textarea> <br />
  26. <input type=\"submit\" value=\"Wyślij\" />
  27. </form>";
  28.  
  29. ?>


tak, ze wklejam sobie do textarea kod SQL i ma się wykonać jednak się nei wykonuje a mysql_error zwraca

Kod
Something is wrong in your syntax obok '\'\', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=2; ' w linii 3


to jest kod SQL wyswietlony przez w/w skrypt czyli $sql1
  1. CREATE TABLE `artykuly_a` ( `id` int(8) NOT NULL AUTO_INCREMENT, `nazwa` varchar(255) NOT NULL DEFAULT \'', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=2 ; -- -- Zrzut danych tabeli `artykuly_a` -- INSERT
  2. INTO `artykuly_a`
  3. VALUES (1, 'Artykuły'); -- -------------------------------------------------------- -- -- Struktura tabeli dla `artykuly_b` -- CREATE TABLE `artykuly_b` ( `id` int(8) NOT NULL auto_increment, `id_a` int(8) NOT NULL default '0', `nazwa` varchar(255) NOT NULL default '', `opis` text NOT NULL, `odslony` int(8) NOT NULL default '0', `czy_ikona` int(8) NOT NULL default '0', `status` int(8) NOT NULL default '0', `ikona` varchar(255) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=6 ; -- -- Zrzut danych tabeli `artykuly_b` -- INSERT
  4. INTO `artykuly_b`
  5. VALUES (1, 1, 'Emotikony graficzne', 'Ich
  6. (...)


jednak jak wklejam z PHPmyadmina nie ma escapowania znaków.

i cuż porazdzić questionmark.gif

kod SQL jest niemały.
siemakuba
hmm :) znów ty:)

ten kod nie ma prawa zadziałać z dwóch powodów:

1. przed próbą zapisu musisz dać stripslashes" title="Zobacz w manualu php" target="_manual
2. jedno wywołanie mysql_query" title="Zobacz w manualu php" target="_manual nie wykona więcej niż jednego zapytania. Masz ich kilka (kilkadziesiąt), oddzielone ;

rozwiązanie:
wczytujesz dane z formularza, dzielisz na pojedyńcze zapytania, uzywając np. explode" title="Zobacz w manualu php" target="_manual. Daje ci to tablicę z !teoretycznie! każdym elementem będącym oddzielnym zapytaniem. Iterujesz przez tablicę wykonując oddzielnie każde zapytanie.

Dlaczego teoretycznie? Bo jak będziesz miał w treści zapytania średnik, to padaka... Może pomoć explode nie na ; a na ;\n

pozdr.
Hacker
Cytat(siemakuba @ 2006-04-29 22:36:15)
Dlaczego teoretycznie? Bo jak będziesz miał w treści zapytania średnik, to padaka... Może pomoć explode nie na ; a na ;\n

pozdr.

hmmm... split, preg_match_all
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.