Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Odpalenie pliku sql z poziomu php
Krisu
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Szukałem i czytałem na forum, ale nie znalazłem konkretnej odpowiedzi.

Mam plik *.sql, w którym są same INSERT-y,
jak za pomocą php odpalić plik, by zaimportował dane do bazy danych?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
anonim1133
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 22.07.2006
Skąd: Legnica

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


Może i są jakieś funkcje, tego nie wiem, ale chyba jedynym sposobem będzie wczytywanie kolejnych INSERTÓW i po prostu mysql_query ?

Można też spróbować wrzucić to za pomocą zewnętrznego programu 'mysql' ? dość wygodna sprawa by chyba wyszła, pod warunkiem że masz dostęp.

Ten post edytował anonim1133 20.09.2008, 21:38:26
Go to the top of the page
+Quote Post
Krisu
post
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Zastanawiam się na jakiej zasadzie działa bigdump, gdybym miał prosty algorytm, który to robi i mógł go dostosować do swoich potrzeb to już byłaby połowa sukcesu.

Jeśli ktoś miał wcześniej styczność z tym problemem, prosiłbym o jakieś wskazówki.
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Możesz wczytać całego dumpa, opuszczając linie zakomentowane.
Podzielić go po średniku (czyli na pojedyncze zapytania).
Dla każdego takiego zapytania wykonać query.
Njalepiej wrzucić to wszystko do transakcji, wtedy można sprawdzić czy cały dump zakończył się powodzeniem, czy nie.


--------------------
Go to the top of the page
+Quote Post
WebKing
post
Post #5





Grupa: Zarejestrowani
Postów: 219
Pomógł: 16
Dołączył: 16.07.2007

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


Chcesz odpalić plik sql? Mam coś dla ciebie winksmiley.jpg
  1. <?php
  2. include("include/config.php");
  3.  
  4. function install($file) {
  5.    $lines = file($fileName);
  6.    $sql = "";
  7.  
  8.    foreach ($lines as $line_num => $line) {
  9.        $pos = strpos($line, ');');
  10.        if($pos == FALSE) {
  11.            $sql .= $line;
  12.        } else {
  13.            $sql .= $line;
  14.            $arr[] = $sql;
  15.            $sql = "";
  16.          }
  17.    }
  18.  
  19.    for($i=0; $i<count($arr); $i++) {
  20.        mysql_query($arr[$i]);
  21.    }
  22.    return TRUE;
  23. }
  24. install("nazwa_pliku.sql");
  25. ?>


Dawno temu opracowałem ten kod tzn. znalazłem strukturę i poprawiłem błędy itp, itd
Go to the top of the page
+Quote Post
Krisu
post
Post #6





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Coś nie bardzo chciał mi działać ten skrypt.

Dołączyłem plik konfiguracyjny oraz plik sql, utworzyłem połączenie z bazą danych, jednak błąd wyskoczył mi w linii z pętlą foreach
Kod
Warning: Invalid argument supplied for foreach()


Zastąpiłem
Kod
foreach ($lines as $line_num => $line) {
na
Kod
foreach ((array)$lines as $line_num => $line) {

Błąd już nie wyskakuje, ale skrypt także nic nie robi.

Gdzie może być błąd?
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: 19.08.2025 - 07:02