PHP。将下载的csv传输到mysql数据库-如何将下载的csv文件存储在php内存中

PHP。将下载的csv传输到mysql数据库-如何将下载的csv文件存储在php内存中,php,mysql,csv,Php,Mysql,Csv,我想将从网站下载的数据存储到我的mysql数据库中 我使用我的函数“CallAPI(“GET”,$url,$data=false)”使用诸如“”之类的url访问数据库 所以我的调用$results=CallAPI($method,$url,$data=false);返回保存在变量“$results”中的逗号删除数组。我可以在网页中回显$结果,它会显示数据,所有数据都以逗号分隔。在这里之前一切都很好 要将csv上载到mysql数据库,我希望使用“加载数据填充”功能,如下所示: $upload =

我想将从网站下载的数据存储到我的mysql数据库中

我使用我的函数“CallAPI(“GET”,$url,$data=false)”使用诸如“”之类的url访问数据库

所以我的调用$results=CallAPI($method,$url,$data=false);返回保存在变量“$results”中的逗号删除数组。我可以在网页中回显$结果,它会显示数据,所有数据都以逗号分隔。在这里之前一切都很好

要将csv上载到mysql数据库,我希望使用“加载数据填充”功能,如下所示:

$upload = <<<eof
LOAD DATA INFILE $results
INTO TABLE X_Adjusted_All
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(Cusip, Date, Price)
 eof;  

没有。有人知道如何将下载的csv文件保存到phps内存中,作为csv文件用于加载数据填充功能吗

MySQL无法直接从PHP内存中读取。您需要使用创建一个外部文件。然后,MySQL可以读取该文件。您还可以创建一个临时文件并查找中提到的文件名

tempnam()
的示例显示了如何写入该文件:

<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, $results);
fclose($handle);

// do something

unlink($tmpfname);

您不使用常规文件有什么原因吗?您不能使用PHP分配一部分内存,然后让MySQL使用LOAD DATA INFILE读取它。如果您对该级别的性能感兴趣,您可以做什么-创建一个ram驱动器并将csv文件保存在那里。然后让MySQL读取它。@Andy在反思中,我认为我的问题是,当我调用行中的函数:$results=CallAPI(“GET”,$url,$data=false)时,我可以很好地下载数据,但我无法处理变量$results中的后续数据。我只是不知道如何将$results保存为csv文件。
<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, $results);
fclose($handle);

// do something

unlink($tmpfname);