2014-01-10 3 views
0

Что не так с этим кодом в php-файле?MySql ENCLOSED by double quote

$q = "LOAD DATA LOCAL INFILE '$file' INTO TABLE $table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES" ; 
echo "LOAD DATA query = " . $q . "<br />"; 
mysqli_query($DBlink, $q) or die (mysqli_error($DBlink)); 

Похоже, много примеров, которые я видел, но я получаю сообщение об ошибке:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /users13/domains/efsowell.us/web/ed/JOCMemDB/CSV_MySQL.php on line 66

ответ

1

Вы можете увидеть из подсветки синтаксиса, что у вас есть проблема.

$q = "LOAD DATA LOCAL INFILE '$file' 
INTO TABLE $table FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES" ; 
echo "LOAD DATA query = " . $q . "<br />"; 
mysqli_query($DBlink, $q) or die (mysqli_error($DBlink)); 

Вам нужно избежать кавычек в строках. Если ваша строка имеет двойные кавычки, вы должны избегать двойных кавычек. Если это одинарная кавычка, то же относится и к одинарным кавычкам.

Вы также можете использовать переменную интерполяцию с двойными кавычками.

$q = "LOAD DATA LOCAL INFILE '{$file}' 
INTO TABLE $table FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES" ; 
echo "LOAD DATA query = {$q}<br />"; //<-- This line. 
mysqli_query($DBlink, $q) or die (mysqli_error($DBlink)); 
+0

Thanks Jessica! Я думал, что попробовал ускользнуть, но, возможно, я думал, что специальные символы сбежали с удвоениями. Во всяком случае, «\» работает! –

Смежные вопросы