簡體   English   中英

mysql php上的語法錯誤加載數據infile

[英]Syntax Error on mysql php load data infile

這是我第一次嘗試將csv文件中的數據導入mysql表。

問題是csv列的順序與表中的順序不匹配,並且csv中缺少一列(自動增量) id 我正在嘗試這樣做,但是它給了我語法錯誤。

        $sql="LOAD DATA INFILE '$file' 
 INTO TABLE calls 
 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' 
 OPTIONALLY ENCLOSED BY ".'"'." 
 (`account_code`,`source`,`destination`,`dbcontext`,`caller_id`,`channel`,`destination-channel`,`lastapp`,`lastdata`,`start`,`answer`,`end`,`duration`,`billseconds`,`disposition`,`amaflag`,`call_id`,`userfield`)";

注意$file是動態生成的文件名。 執行查詢時出現此錯誤。

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 'OPTIONALLY ENCLOSED BY " (`account_code`,`source`,`destination`,`dbcontext`,`' at line 4

知道為什么嗎?

謝謝阿馬爾

這個:

OPTIONALLY ENCLOSED BY "

需要是

OPTIONALLY ENCLOSED BY '"'

所以你的代碼應該改為

$sql="LOAD DATA INFILE '$file' 
 INTO TABLE calls 
 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
 LINES TERMINATED BY '\r\n' 

 (`account_code`,`source`,`destination`,`dbcontext`,`caller_id`,`channel`,`destination-channel`,`lastapp`,`lastdata`,`start`,`answer`,`end`,`duration`,`billseconds`,`disposition`,`amaflag`,`call_id`,`userfield`)";

(更改所需的單引號和交換子句的順序已更改,但我還將您的連接更改為更具可讀性的內容)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM