Ładowanie CSV do tabeli MySQL za pomocą PHP
Próbuję zaimportować plik CSV do tabeli MySQL za pomocą skryptu PHP. To polecenie SQL pomyślnie importuje plik CSV do tabeli SQL:
mysql> LOAD DATA LOCAL INFILE 'property_re_1.csv'
-> REPLACE INTO TABLE `markers`
-> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
-> LINES TERMINATED BY '\n' IGNORE 1 LINES;
Query OK, 315 rows affected (0.01 sec)
Records: 315 Deleted: 0 Skipped: 0 Warnings: 0
Teraz chcę przekonwertować to polecenie SQL na skrypt PHP. Oto moja próba napisania skryptu PHP:
<?PHP
$dbhost = 'localhost';
$dbuser = 'myusername';
$dbpasswd = 'mypassword';
$db = "db_markers";
$dbh = mysql_connect($dbhost, $dbuser, $dbpasswd) or die("Unable to connect to SQL server");
$my_db = @mysql_select_db($db, $dbh) or die("Unable to select database");
$file = $_SERVER['DOCUMENT_ROOT']."/path/property_re_1.csv";
$result=mysql_query("LOAD DATA LOCAL INFILE '$file' REPLACE INTO TABLE `markers` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES");
?>
Ten skrypt powoduje błąd:
Błąd HTTP 500 (wewnętrzny błąd serwera): napotkano nieoczekiwany warunek podczas próby spełnienia żądania przez serwer.
Dziennik błędów brzmi:
[18-Dec-2012 12:37:38] PHP Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /path/testconnect.php on line 13
Zmienna $ Result jest wywoływana w linii 13, więc błąd musi w niej występować.
Nie jestem pewien, jaka jest przyczyna tego błędu. Każda pomoc jest bardzo mile widziana!