我需要從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