簡體   English   中英

從外部URL將CSV文件上傳到mysql

[英]Upload CSV file to mysql from external URL

例如,我有一個來自Google工作表的URL,該工作表將工作表導出到CSV文件:

https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}

我想要某種機制來處理外部CSV文件,以將其插入MySQL的表中。

我對從哪里開始沒有絲毫想法。

更新25/03/2019:這是我的最新進展,這要歸功於一些答案! 我仍然必須將CSV導入MySQL。

 <?php

$conn = new mysqli($servername, $username, $password, $dbname);

$array = str_getcsv(file_get_contents("https://docs.google.com/spreadsheets/...."));

var_dump($array);

    $name = tempnam('/','csv');
    $fp = fopen($name, 'w'); 

    // $array = str_replace('"', '', $array);

   fputs($fp, implode($array, ',')."\n");


$sql = "DELETE FROM conceptos";
$result = $conn->query($sql);


$sql = "LOAD DATA LOCAL 
    INFILE '$name' INTO TABLE conceptos FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES";

fclose($fp);

?>

我現在正在創建一個臨時文件以嘗試使用LOAD DATA,但是我遇到了其他錯誤,例如找不到文件,我只能從命令行看到此錯誤,而不能直接從我的php代碼看到。

對我來說,這聽起來像3步。

  1. 查詢URL並將結果讀入字符串變量。 (請參見此處: 網站查詢php
  2. 解析包含CSV數據的字符串(請參見此處: https : //www.php.net/manual/zh/function.str-getcsv.php
  3. 插入到您的MySQL數據庫中(請參閱此處: https : //www.w3schools.com/php/php_mysql_insert.asp

像這樣解析:

<?php 
$Data = str_getcsv($CsvString, "\n"); //parse the rows 
foreach($Data as &$Row) $Row = str_getcsv($Row, ";"); //parse the items in rows 
?>

祝好運!

暫無
暫無

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

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