Javascript 从外部URL将CSV文件上载到mysql
例如,我有一个来自google sheets的url,可以将工作表导出到CSV文件:Javascript 从外部URL将CSV文件上载到mysql,javascript,php,mysql,google-sheets,Javascript,Php,Mysql,Google Sheets,例如,我有一个来自google sheets的url,可以将工作表导出到CSV文件: https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name} 我需要某种机制来处理外部CSV文件以插入MySQL中的表中 我一点也不知道从哪里开始 2019年3月25日更新:这是我最近的进步,感谢一些答案!我仍然需要将CSV导入MySQL <?php $conn = new mysqli($se
https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}
我需要某种机制来处理外部CSV文件以插入MySQL中的表中
我一点也不知道从哪里开始
2019年3月25日更新:这是我最近的进步,感谢一些答案!我仍然需要将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);
?>
对我来说,这听起来像是三个步骤
查询URL并将结果读入字符串变量。(见此处:)
解析包含CSV数据的字符串(请参见此处:)
插入MySQL数据库(请参见此处:)
像这样解析:
<?php
$Data = str_getcsv($CsvString, "\n"); //parse the rows
foreach($Data as &$Row) $Row = str_getcsv($Row, ";"); //parse the items in rows
?>
祝你好运 这个文件来自一个外部url,直接解析成php插入到一个表中。我还没有找到从哪里开始的答案。下载有效吗?您可能不希望实际创建本地文件,而是打开到数据库的连接并直接在那里写入。但如果你能在没有身份验证的情况下打开电子表格,我会很惊讶。如果您没有看到错误,那么现在需要做的第一步就是更改PHP错误设置,以绝对显示每个错误。否则你就瞎了。你是对的,前两个步骤在一行中被解析为str_getcsv(file_get_contents(“{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}”);现在我被困在第3步。请看我的编辑,如果您像这样解析,您将迭代csv的行,每行有$Row数组。然后,只需为每一行执行一条insert语句。