Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] hurtowe wsadzanie danych do mysql'a
Forum PHP.pl > Forum > Przedszkole
habbakuk
Napisałem skrypcik w php, który teoretycznie powinien dodawać newsy do bazy. Dodaje je, ale w jakiś dziwny i niezrozumiały dla mnie sposób. Oto kod php:
  1. <?php
  2. $db = mysql_pconnect('localhost', 'root', 'supertajnehaslo');
  3. if ($db) {
  4. echo 'Wszystko gra :)';
  5. } else {
  6. echo 'Error: polaczenie z baza nie powiodlo sie.';
  7. }
  8. $num = 0;
  9. while ($num <=10){
  10. $query = &#092;"LOAD DATA INFILE 'E:/Nauka/dm/anthropology/\".$num.\".txt' INTO TABLE post;\";
  11. $num++;
  12. }
  13. $wynik = mysql_query($query);
  14. if(!$wynik) {
  15. echo '<br> Wystapil blad w kwerendzie.';
  16. }
  17. ?>

Chciałbym dodać pliku 0.txt, 1.txt .... do 10.txt za pomocą ww programiku.
Kiedy wpisuję z palca:
Kod
LOAD DATA INFILE 'E:/Nauka/dm/anthropology/0.txt' INTO TABLE post;

nie ma problemu:
Kod
mysql> LOAD DATA INFILE 'E:/Nauka/dm/anthropology/0.txt' INTO TABLE post;
Query OK, 1 row affected, 2 warnings (0.00 sec)
Records: 1  Deleted: 0  Skipped: 0  Warnings: 2

Sprawdzam sobie autora:
Kod
mysql> select autor from post;
+-----------------------------------------+
| autor                                   |
+-----------------------------------------+
| Kjetil R? Hauge (k.r.hauge@east.uio.no) |
+-----------------------------------------+
1 row in set (0.00 sec)

No i ładnie, dodaję jeszcze klika plików z palca i ponownie sprawdzam autorów:
Kod
mysql> select autor from post;
+-----------------------------------------------------+
| autor                                               |
+-----------------------------------------------------+
| Kjetil R? Hauge (k.r.hauge@east.uio.no)             |
| Alaca (P.Alaca@is.fake)                             |
| The ATM (gembles84@hotmail-dot-com.no-spam.invalid) |
| Jim (tomfiege9@yahoo.com)                           |
+-----------------------------------------------------+
4 rows in set (0.00 sec)

I ok, usuwam zawartość tabeli:
Kod
mysql> delete from post;
Query OK, 4 rows affected (0.25 sec)

I zarzucam wspomniany na początku skrypt php. Teoretycznie powinien dodać 10 plików, a więc stworzyć 10 nowych wierszy a tutaj mam:
Kod
mysql> select autor from post;
+--------------------------+
| autor                    |
+--------------------------+
| Daeron (daeron@some.net) |
+--------------------------+
1 row in set (0.00 sec)

I nie za bardzo wiem o co chodzi :?, gdyż powyższy autor odnosi się do ostatniego pliku 10.txt. Czyli tak jakby php dodał tylko plik 10.txt. A co z pozostałymi ? Być może nieprawidłowo połączyłęm wartość $num? Pozdrawiam
kszychu
W pętli while zmieniasz tylko wartość dla zmiennej $query, ale NIE WYKONUJESZ tego zapytania. Tak więc wykonywany jest tylko jeden LOAD, dla ostatniej wartości $query. Rozwiązanie: wciągnij do while linijkę $wynik = mysql_query($query);
habbakuk
Działa smile.gif Wielkie dzięki kszychu !
BTW, gdy chcę wstawić już więcej danych ~ 250 plików, dostaję wiadomość z przeglądarki:
Kod
Fatal error: Maximum execution time of 30 seconds exceeded in c:\Program Files\Apache Group\Apache2\htdocs\db.php on line 12

Linua 12 to:
  1. <?php
  2. $wynik = mysql_query($query);
  3. ?>

Czy tutaj mam coś zmienić w ustawieniach php, czy może Apache bądź przeglądarki?
Wybacz pytanie - przygodę z php zacząłem wczoraj.
Pozdrawiam.
kszychu
php.ini - max_execution_time = czas w sekundach
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.