Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Odpalenie pliku sql z poziomu php
Forum PHP.pl > Forum > Przedszkole
Krisu
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?
anonim1133
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.
Krisu
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.
vokiel
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.
WebKing
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
Krisu
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?
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.