Hoe krijg ik dit mysql-statement uitgevoerd ?
Dit is de query:
load data infile 'c:/xampp/htdocs/phpsites/data.txt' into table jour fields terminated by ',' ENCLOSED BY '"' lines terminated by '\r\n'
Dit werkt niet (1):
$query = "load data infile ''c:/xampp/htdocs/phpsites/data.txt'' into table jour fields terminated by '','' ENCLOSED BY ''\"'' lines terminated by ''\r\n'' ";
$result = $db->query($query) ;
Dit werkt niet (2):
$file='c:/xampp/htdocs/phpsites/data.txt' ;
$enclose='"' ;
$stmt = "load data infile ? into table jour fields terminated by '','' ENCLOSED BY ? lines terminated by ''\r\n'' " ;
$stmt->execute(array($file, $enclosed)) ;
$result = $u->fetchAll(PDO::FETCH_ASSOC);
Toevoeging op 22/08/2013 11:06:36:
Zie mijn bovenstaande vraag. In voorbeeld (1) heb ik elke enkele kwoot met een extra kwoot ge-escaped, en tevens de dubbele kwoot met een backslash. In dat geval is de php-syntax in ieder geval correct.
Toevoeging op 22/08/2013 11:33:20:
Zie mijn bovenstaande vraag. De query is OK! (werkt in PhpMyAdmin). Het lukt echter niet om het in PHP uitgevoerd te krijgen zonder syntaxfouten.
Code (php)
1
2
3
4
5
2
3
4
5
LOAD DATA INFILE 'C:/Users/Administrator/Desktop/test.txt'
INTO TABLE test
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
INTO TABLE test
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
test.txt
Ik zie niet veel verschil in de code die je hebt geplaatst.
Wat doet ENCLOSED BY?
Hoe ziet je tabel en je bestand eruit?
Het eerste voorbeeld geeft bij executie als foutmelding:
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 'c:/xampp/htdocs/phpsites/data.txt'' into table intabel fields terminated by '','' at line 1' in C:\xampp\htdocs\phpsites\rabobank\inlezen.php:10 Stack trace: #0 C:\xampp\htdocs\phpsites\rabobank\inlezen.php(10): PDO->query('load data infil...') #1 {main} thrown in C:\xampp\htdocs\phpsites\rabobank\inlezen.php on line 10.
Line 10 is de regel "$result = $db->query($query) ;" van voorbeeld 1.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$query = "LOAD DATA INFILE 'c:/xampp/htdocs/phpsites/data.txt'
INTO TABLE intabel
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINTATED BY '\\r\\n'";
?>
$query = "LOAD DATA INFILE 'c:/xampp/htdocs/phpsites/data.txt'
INTO TABLE intabel
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINTATED BY '\\r\\n'";
?>
Gewijzigd op 22/08/2013 13:18:40 door Ger van Steenderen
Zucht, dat is 'm. Dank je wel.