Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z instrukcją LOAD DATA LOCAL INFILE
Forum PHP.pl > Forum > PHP
fulgore
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
SongoQ
Napisz jeszcze jakie to dane w jakim formacie czy to SQL czy CSV. Bo przeciez mozesz uzyc impor source no i laod
fulgore
dane są w formacie csv
Arti79
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>
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.