我需要从MySQL
查询中生成一个CSV
文件,并将该文件保存到SFTP
服务器。我试过了下面的代码。 CSV
文件被创建,但它是空的。我还在浏览器中收到一条关于Warning: is_file() expects parameter 1 to be a valid path, resource given
关于此行$sftp->put($fileName, $fp, NET_SFTP_LOCAL_FILE);
的错误消息。如果我将fclose($fp);
移动到最后一行,我不会收到错误,但数据仍然不会出现在文件中。有人能让我知道如何让数据保存在创建的文件中吗?在PHP中创建CSV文件并使用phpseclib保存到SFTP
$fileName = 'dataFiles/reports/Report Summary/Report Summary.csv';
$sql = mysqli_query($db, "
SELECT *
FROM reports
WHERE reportID = 1
");
$fp = fopen('php://output', 'w');
$first = true;
while($row = mysqli_fetch_assoc($sql)){
if ($first) {
fputcsv($fp, array_keys($row));
$first = false;
}
fputcsv($fp, $row);
}
fclose($fp);
$sftp->put($fileName, $fp, NET_SFTP_LOCAL_FILE);
http://phpseclib.sourceforge.net/sftp/examples.html#put - 你需要给这个方法一个要写的数据的字符串,或者一个本地文件的名字来读取要写入的内容 - 不是文件指针。 – CBroe