Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Błąd zapytania LOAD DATA LOCAL INFILE
Arhimenrius
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 3
Dołączył: 19.04.2011

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


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;
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro piszesz w "cudzysłowiu" to
nie: '\r\n'
a: '\\r\\n'
Go to the top of the page
+Quote Post
Arhimenrius
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 3
Dołączył: 19.04.2011

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


hmmm... niestety to nic nie pomogło, a zaczeło zwracać że \r\n to też błąd.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To pokaż jaki masz teraz błąd dokładnie. Pokaż też kod po poprawkach
Go to the top of the page
+Quote Post
Arhimenrius
post
Post #5





Grupa: Zarejestrowani
Postów: 115
Pomógł: 3
Dołączył: 19.04.2011

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


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");


Ten post edytował Arhimenrius 29.02.2012, 01:15:16
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: 23.08.2025 - 19:29