[PHP][MySQL] Load data query escaping

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 14:40
Hallo,

Ik heb op dit moment een pagina waar je bestanden kunt uploaden, de bedoeling is dat er een csv bestand wordt geüpload en dat hij rechtstreeks de database in gaat. Alleen de escaping krijg ik maar niet voor elkaar.

code:
1
2
3
4
5
"LOAD DATA LOCAL INFILE  '".$path."' REPLACE INTO TABLE  `tmptable`
FIELDS TERMINATED BY  ';'
ENCLOSED BY  ''
ESCAPED BY  '\\'
LINES TERMINATED BY  '\r\n'";


Ik krijg deze melding vanuit MySQL als ik de query wil uitvoeren:
code:
1
"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 ''' at line 5"


Zou iemand me de goede richting in willen wijzen?

Alvast bedankt!

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Print eens het gemaakte statement...

Want puur uit mijn hoofd zou ik gokken dat je path niet gesanitized is waardoor die escape-tekens bevat en die de rest van je escape tekens overhoop gooit.

Wat verwacht jij bijv dat er zou gebeuren als je $path eindigt op een \ of als die een ' bevat?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik ga het je niet helemaal voorzeggen maar wél een héle dikke hint geven:

Zet dit eens in een bestand:
PHP: test.php
1
2
3
<pre>
<?php echo "Foo\r\nBar"; ?>
</pre>

En open dan test.php eens in je browser. Kijk nu nog eens goed naar line 5 ;)

Iets met ', " en escapen van \r » \\r enzo :Y)

[ Voor 5% gewijzigd door RobIII op 05-06-2015 00:29 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 14:40
Bedankt! Ik ga er is naar kijken.

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM