Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Błąd zapytania LOAD DATA LOCAL INFILE
Forum PHP.pl > Forum > Przedszkole
Arhimenrius
Hej. Tym razem mam następujący problem. Próbuję zaimportować swój plik .csv do bazy przez PHP, lecz wywala mi następujący błąd: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' IGNORE 1 LINES' at line 2. Mimo jakichkolwiek modyfikowań do zapytania, zawsze się do czegoś doczepi ;/

Oto fragment kodu:
  1. $stmt = $db -> prepare("LOAD DATA LOCAL INFILE '".$basedir."/".$csv."/".$savename."' INTO TABLE `users` FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' IGNORE 1 LINES ");
  2. $stmt -> execute();
  3. $stmt = CloseCursor;
nospor
Skoro piszesz w "cudzysłowiu" to
nie: '\r\n'
a: '\\r\\n'
Arhimenrius
hmmm... niestety to nic nie pomogło, a zaczeło zwracać że \r\n to też błąd.
nospor
To pokaż jaki masz teraz błąd dokładnie. Pokaż też kod po poprawkach
Arhimenrius
ok, udało się. jest w pełni bezproblemowy... (po paru godzinach modyfikowania tego kodu ;| ). To może jeszcze skorzystam z okazji, i spytam co powinienem zrobić, by przy wysyłaniu pliku, do kolumny 'uspassword' było wysłane zahaszowane hasło?

  1.  
  2. $stmt=$db->query($s="LOAD DATA LOCAL INFILE '{$basedir}/{$csv}/{$savename}' INTO TABLE `users` FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES");


  1.  
  2. <?
  3. function password($pass)
  4. {
  5. $pass = md5(hash_hmac('sha512', $pass, 'hR4#vr'));
  6. return $pass;
  7. }


To załatwia robote w połowie, ponieważ w takim przypadku nie uzupełnia 'usname'
  1. $stmt=$db->query($s="LOAD DATA LOCAL INFILE '{$basedir}/{$csv}/{$savename}' INTO TABLE `users` (uspassword) SET uspassword = md5(uspassword); FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES");
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.