Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Import pliku sql do bazy danych z poziomu php
Forum PHP.pl > Forum > Przedszkole
przemo191
Witam. Tak jak w temacie.
Skrypt musi mieć opcje wyboru pliku (tak jak w phpmyadmin), i importu owego pliku do wybranej bazy danych.
I tu jest "pies pogrzebany" nie znam się na tym zupełnie i proszę o pomoc.
exood
a coś zaczęte już jest? czy tak pomóc w sensie zrobić?
przemo191
No coś zacząłem ale nie chce działać, zero reakcji, zero błędów, a nie działa.

  1. function importSQL($uchwyt) {
  2. while (!feof($uchwyt)) {
  3. $wiersz = trim(fgets($uchwyt));
  4. if(substr($wiersz, 0, 1)=='#' or empty($wiersz)) continue;
  5. if(substr($wiersz, -1, 1)!=';') {
  6. while (!feof($uchwyt)) {
  7. $w=trim(fgets($uchwyt));
  8. if(substr($w, 0, 1)=='#' or empty($w)) continue;
  9. if(substr($w, -1, 1)!=';') $wiersz.=' '.$w;
  10. else {
  11. $wiersz.=' '.$w;
  12. break;
  13. }
  14. }
  15. }
  16. mysql_query($wiersz); #tu mozna zmienic na wybrany sterownik bazy
  17. }
  18.  
  19. }
  20.  
  21. $uchwyt=fopen('depis.sql', 'r');
  22. importSQL($uchwyt);
exood
a połączenie z bazą masz okej? dodajesz do dobrej bazy? plik z zapytaniem nie jest przypadkiem pusty?
mortus
Funkcja jest źle napisana. Zauważ, że zapytanie wykonujesz na każdym, również pustym wierszu.
  1. function importSQL($sqlFileHandle) {
  2. $query = '';
  3. while(!feof($sqlFileHandle)) {
  4. $row = trim(fgets($sqlFileHandle));
  5. if(substr($row, 0, 1) == '#' or empty($row)) continue;
  6. $query .= $row;
  7. if(substr($row, -1, 1) == ';') {
  8. mysql_query($query);
  9. $query = '';
  10. }
  11. }
  12. }
  13. $handle = fopen('depis.sql', 'r');
  14. importSQL($handle);


Przeczytaj temat Jak poprawnie zadać pytanie, aby na przyszłość wiedzieć, w jaki sposób można debugować kod PHP.
przemo191
Hasło do bazy danych było źle wpisane ;p
Mała ale jak że znacząca pomyłka.

Skrypt działa.

A teraz drugi problem, w tym momencie nazwa pliku i ścieżka do niego wpisana jest na sztywno, jak zrobić tak jak w phpmyadmin żeby wybrać ścieżkę do pliku z dysku komputera?
exood
musisz przesłać plik na serwer czyli formularz
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.