Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Zapytania z pliku
DarkItachiPL
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 26.06.2008

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


Witam... Od dłuższego czasu poszukuję skryptu który pozwolił by wgrać do bazy 1689 z pliku .sql znajdującego się w folderze ze skryptem... Pomoże ktoś? Byłbym bardzo wdzięczny ;]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
artega
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

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


Przydałaby się jeszcze wzmianka co dokładnie chcesz "wgrać". Liczba 1689 raczej wiele nie mówi. Popatrz tutaj być może to rozwiązanie, którego szukasz winksmiley.jpg
Go to the top of the page
+Quote Post
DarkItachiPL
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 26.06.2008

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


Tzn. sorki wczoraj mnie głowa bolała i zapomniałem dopisać wstydnis.gif

Chodziło mi o taką ilość linijek, a w tym pliku są zapytania z tabelkami i insertami...
  1. <?php
  2. $sql_file = [url="http://www.php.net/File"]file[/url]('coyote.sql'); // odczytaj plik do tablicy (jedna linia = jeden element tablicy)
  3.  
  4. for ($i=0; $i<count($sql_file); $i++)
  5. {
  6.  /* analiza kazdej linii polega na sprawdzeniu, czy nie zaczyna sie ona od znaku #
    , co oznacza komentarz (nalezy to usunac). Jezeli nie - do zmiennej $sql_commands dodajemy reszte zawartosci komend SQL */
     
  7. if ($sql_file[$i][0] != "#")
  8.  {
  9. $sql_commands .= $sql_file[$i];
  10.  }
  11.  
  12. }
  13. // na podstawie znaku ; okreslajacego koniec komendy SQL rozdzielamy wszystkie kom
    endy
  14.  $sql_commands = [url="http://www.php.net/Split"]split[/url](';', $sql_commands);
  15.  $j = 1; // licznik zapytan
  16.  
  17.  for ($i=0; $i<count($sql_commands) -1; $i++)
  18.  {
  19. /* w tej petli nastepuje wysylanie zapytan do bazy danych, co ma na celu utworzen
    ie wszystkich potrzebnych tabel. jezeli zapytanie sie uda - wyswietlana jest informacja */
  20.  if (![url="http://www.php.net/Mysql_query"]mysql_query[/url]($sql_commands[$i]))
  21.  {
  22.  [url="http://www.php.net/Echo"]echo[/url] 'Zapytanie nr ' . $j . ': błąd ' . [url="http://www.php.net/Mysql_error"]mysql_error[/url]() . '...<br>';
  23.  }
  24.  
  25. ++$j;
  26.  }
  27. ?>


Ten skrypt właśnie służy do wgrywania na serwer, lecz on gubi się w połowie mojego pliku ;(...

Pomocy!
Go to the top of the page
+Quote Post
artega
post
Post #4





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

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


@DarkItachiPL, określenie "gubi się" również nie jest zbyt pomocne - staraj się bardziej precyzować myśli a będzie łatwiej winksmiley.jpg można jedynie domyślać się co stanowi problem. Przypuszaczam, że skrypt wykonuje się zbyt długo (set_time_limit) albo format zawiera nieodpowiednią formę z założeniami tudzież MySQL nie odpowiada.
Go to the top of the page
+Quote Post
DarkItachiPL
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 26.06.2008

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


Teraz odpowiem bardzo dokładnie co się dzieje ze skryptem umieszczonym w powyższym moim poście...
Otóż, on jakby to powiedzieć... dochodzi do zapytania znajdującego się po 1000 linijce, jest to zapytanie INSERT INTO, i on je wykonuje i nagle tak jakby plik się resetował i zapytania są wykonywane po kilka tysięcy razy i ten INSERT został wpisany kilka tysięcy razy, przez co zapycha się baza... Niestety wykonują się przed nim zapytania typu INSERT INTO, ale dalej już nie... Próbowałem wywalić to zapytanie, lecz następne robiły to samo... Nie jest to mój plik sql, jest to plik sql do phpbb modified by przemo.. Jeśli dalej nie wiesz o co mi chodzi podeślę ci mój sql(On jest złożony z tabelek i INSERTÓW(złożyłem go z 2 plików)) i sam przetestujesz o co mi chodzi... Pozdrawiam DarkItachiPL...

Próbowałem tak:
  1. <?php
  2. $file=file_get_contents('mysql_schema.sql');
  3. $result=mysql_db_query($db1,$file) or die(mysql_error());
  4. ?>


Ale jedyny rezultat jaki otrzymywałem to:
Something is wrong in your syntax obok '; CREATE TABLE phpbb_adv_person ( user_id mediumint(9) default '0' NOT NULL,' w linii 14
Go to the top of the page
+Quote Post

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: 20.08.2025 - 07:09