Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z instrukcją LOAD DATA LOCAL INFILE
fulgore
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 17.10.2007

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


Witam,

prosze Was o pomoc, od paru godzin nie potrafie ugrysc problemu.
Z tego co wyczytałem z książek i inetu aby zaimportowa masowo dane z pliku do bazy MySQL wystarczy użyc polecenia LOAD DATA INFILE i wszystko było by fajnie gdyby nie to iż ja te dane chce podgrywac z komputera zdalnie laczacego sie poprzez protokul http (po zalogowaniu na strone). W tym wypadku powinienem użyc polecenia LOAD DATA LOCAL INFILE ale wysypuje mi bledami - File 'c:\pliki\dddd.csv not found Errcode 2';

Pare godzin już z tym siedze i chyba chodzi tu o backslash. Używalem już nie jednej funkcji ale nie moge dojsc co jest nie tak.
Zauważylem że jak podgrywam z localhosta to w sciezce dostepu do pliku dodawany jest dodatkowy backslash czyli adres wyglada wtedy nastepujaco 'c:\\pliki\\dddd.csv'.

Posuwając sie dalej postanowilem dodac te slashe ale zawsze dodaje mi tylko do pierwszego wystapienia czyli c:\\ a dalej tak jak by nie widzial stringa.

Prosze pomozcie bo juz nie mam pomyslu.
Chciałbym uniknac niepotrzebnego otwierania pliku i ladowania wszystkiego insertami.

Pozdrawiam
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Napisz jeszcze jakie to dane w jakim formacie czy to SQL czy CSV. Bo przeciez mozesz uzyc impor source no i laod
Go to the top of the page
+Quote Post
fulgore
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 17.10.2007

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


dane są w formacie csv
Go to the top of the page
+Quote Post
Arti79
post
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 26.03.2006
Skąd: Warszawa

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


Ja to rozwiązałem tak (być może są w tym jakieś błędy, ale dane są ładowane do tabeli):

Cytat
<?php

include ('polacz.php');

if ($_POST["wyslij"]==1) {
$plik_nazwa_tmp = ($_FILES["plik1"]["tmp_name"]);
$plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
$plik_wielkosc = $_FILES["plik1"]["size"];

if (is_uploaded_file($_FILES["plik1"]["tmp_name"])) {
move_uploaded_file($plik_nazwa_tmp, "/tmp/$plik_nazwa_oryginalna");
chmod("/tmp/$plik_nazwa_oryginalna", 0664);

$wynik = mysql_query("LOAD DATA LOCAL INFILE '/tmp/$plik_nazwa_oryginalna' IGNORE INTO TABLE nazwa_tabeli CHARACTER SET 'cp1250' FIELDS TERMINATED BY '|'");
if ($wynik) echo "Tabela została wypełniona danymi z pliku.";
else echo "Błąd w zapytaniu SQL: ".mysql_error();
mysql_close($baza);
}
}

?>

<form action="index.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="wyslij" value="1" />
<input type="hidden" name="MAX_FILE_SIZE" value="900000" />
<br /><input name="plik1" type="file" />
<br /><input type="submit" value=" Wstaw dane do tabeli " />
</form>


Ten post edytował Arti79 26.10.2007, 14:05:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:54