gpt4 book ai didi

php - 在 php for\copy export csv 中使用 psql 元命令时遇到问题

转载 作者:行者123 更新时间:2023-11-29 13:24:34 25 4
gpt4 key购买 nike

我正在尝试通过浏览器上的 PHP 脚本将 csv 文件从 Linux 机器导出到本地 PC。

我做了很多研究,但找不到我要找的东西(也许它不存在)。

我的脚本通过 php 连接到数据库并使用 localhost,就像我的其他 php 脚本一样,它们只显示数据库中的数据但不导出数据。

这是我徒劳的尝试:

$user = 'postgres';
$password = 'XXXXX';
$db = 'ltg';
$host = 'localhost';
$conn=pg_connect('dbname ='.$db.' user = '.$user.' password = '.$password.' host = '.$host) or die ("Could not connect: ");

//query for copying/exporting to csv
echo "system(\copy (select lat, lon from ltg_data order by time desc limit 1000) To '~/Downloads/export.csv' CSV HEADER);"

至少有两个问题让我感到困惑。与数据库的连接可以很好地访问/显示来自数据库的数据。我是否需要使用“localhost”以外的其他东西来导出数据?

其次,运行\copy 命令是有问题的。我不知何故需要运行 psql 元命令来导出数据,但我真的不知道如何通过 php 执行此操作。

非常感谢您的宝贵时间。

最佳答案

问题是 system 运行一个 shell 命令(不确定为什么要回显它?),所以它根本不通过 $conn。当然,没有名为 \copy 的 shell 命令。

如果你愿意,你可以发送一个 \copy ...psqlsystem("echo '\copy ....' | psql"),但你必须小心转义参数等。

因为你的数据库在 localhost 上并且你已经连接到 postgres 用户,你可以只使用 COPY 而不是 \copy,并通过$conn发送命令。

这是关于 COPY 的文档.

关于php - 在 php for\copy export csv 中使用 psql 元命令时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36159754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com