有没有办法从PostgreSQL查询进行下载?

时间:2016-11-17 11:27:46

标签: php postgresql download

我想知道是否有办法在服务器上没有文件的情况下进行下载。

更确切地说,我的服务器在磁盘空间非常有限的虚拟机上运行(实际上约200 Mo的可用空间),并且由于这个原因,我必须在不同的服务器上使用PostgreSQL。 PostgreSQL基础庞大(每个表大约6000万行,每个月创建一个新表,并且可以创建的表数没有限制。)

当我连接到我的网页时,我可以选择执行custon sql查询,并将下载此查询的结果。 有可能一次运行许多sql查询,每个查询可能需要几分钟,所以我不能在我的服务器上的文件上写结果查询,然后执行经典下载(带有readfile)。

所以我必须使用cifs挂载一个目录,在该目录中打开一个文件,执行查询,逐行获取行并将该行写入该文件。

我想摆脱cifs挂载,我想知道我是否可以执行查询并说php下载OPostgreSQL fetch。除了经典的下载之外,我不知道其他任何方式进行下载。

如果可以通过AJAX进行,那将是非常出色的。

编辑:

我试试这段代码:

<?php

ini_set('display_errors', 1);
error_reporting(E_ALL);

header('Content-Disposition: attachement; filename=toto');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Description: File Transfert');

$pdo = new PDO("pgsql:good_conn_info");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$results = $pdo->query("SELECT * FROM table");

while ($data = $results->fetch()) {
    echo "${data['row']}\n";
    ob_flush();
    flush();
}

?>

并且我最终只得到“错误连接:连接已重新初始化”。 这是方法吗?

0 个答案:

没有答案