亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL 加載數據本地文件

SQL 加載數據本地文件

PHP
慕的地8271018 2022-08-05 16:37:22
我的數據如下所示。company_name,brand_name,product_name,usage_annotation,organic_standardASB Greenworld Ltd.,ASB Greenworld Ltd.,Organic Garden Manure,,"COS,NOP"ASB Greenworld Ltd.,ASB Greenworld Ltd.,Organic Seed & Herb Soil,,"COS,NOP"ASB Greenworld Ltd.,ASB Greenworld Ltd.,Organic Moisture Soil,,"COS,NOP"我的查詢在 php 中如下所示$sql = "LOAD DATA LOCAL INFILE '".$file_url_with_name."' INTO TABLE ".$table_name." FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\'";$sql .= " LINES TERMINATED BY '\n' IGNORE 1 LINES (company_name,brand_name,product_name,usage_annotation,organic_standard);";其中$file_url_with_name是我的文件路徑,其實際文件名擴展名為$table_name是表 im 嘗試將數據加載到。它給了我這個錯誤:WordPress database error: [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 '' IGNORE 1 LINES (company_name,brand_name,product_name,usage_annotation,organic_' at line 2]LOAD DATA LOCAL INFILE '/home/data/test-data.csv' INTO TABLE wpiy_test_data FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY ' ' IGNORE 1 LINES (company_name,brand_name,product_name,usage_annotation,organic_standard);如果有人能幫忙,那就太好了
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

從您顯示的錯誤中,可以看到行終止符未正確傳遞給查詢。


您想要 :,但錯誤日志顯示:。LINES TERMINATED BY '\n'LINES TERMINATED BY ' '


您只需要在構建查詢字符串時轉義回車符,這樣就不會在PHP中對其進行插值。


此外,正如Barmar所指出的,您需要轉義該部分,以便將兩個反面條傳遞給查詢(截至目前,最終查詢字符串中只有一個反斜杠,這也是一個語法錯誤)。ESCAPED BY '\\'


$sql = "LOAD DATA LOCAL INFILE '".$file_url_with_name."' INTO TABLE ".$table_name." FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\'";

$sql .= " LINES TERMINATED BY '\\n' IGNORE 1 LINES (company_name,brand_name,product_name,usage_annotation,organic_standard);";


查看完整回答
反對 回復 2022-08-05
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

從另一個角度來看,這似乎是簡單的csv文件,只是這樣


$file = fopen($file_url_with_name, "r");

while (($data = fgetcsv($file, 10000, ",")) !== FALSE)

{

    $sql = "INSERT into $table_name (company_name, brand_name, product_name, usage_annotation, organic_standard) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')";

    mysqli_query($con, $sql);

}

fclose($file);


查看完整回答
反對 回復 2022-08-05
  • 2 回答
  • 0 關注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號