LinuxマシンからローカルPCにcsvファイルをエクスポートしようとしています。PHPでpsqlメタコマンドを使用して copy export csv
私は良い研究をしましたが、探しているものが見つかりませんでした(多分存在しないかもしれません)。
私のスクリプトはphp経由でデータベースに接続し、データベースからのデータを表示するだけでデータをエクスポートしない他のPHPスクリプトと同様にlocalhostを使用します。ここで
は私の無益な試みです:
$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);"
2つの問題は私が混乱していることを、少なくとも、があります。 dbへの接続は、dbからのデータのアクセス/表示に適しています。データをエクスポートするために「localhost」以外のものを使用する必要がありますか?
第2に、\ copyコマンドの実行に問題があります。私は何らかの形でデータをエクスポートするためにpsqlメタコマンドを実行する必要があります、そして、私は実際にPHPを介してそれを行う方法を知らない。
ありがとう、ありがとうございます。
ありがとうございました!私はどこかに行っていると思う。ここでは私が持っているものは次のとおりです:system( "echo '\ copy(lat、lon、ltg_dataからの時間をdesc desc limit 1000で選択)' export.csv 'CSV HEADER' | psql"); ブラウザで実行されているように見えますが、データをどこにでも置くことはできません。助言がありますか?私はこれ以上エスケープする必要はないと思います。ありがとう! – user1610717
私は 'export.csv'の代わりに完全なパスを与えて、どこを見ているかを知ることができます! –
私はそれを与えました... 'C:' \ export.csv '。私は "\"をエスケープした。私は他の何かを脱出する必要があると思いますか?ファイルをどこにも見つけられません。 実行時に何をしようとしているのかわかる方法はありますか?おそらくそれはシステムを使うことの欠点です。私は運がない普通のCOPYコマンドを試しました。 もう一度お手数をおかけします。 – user1610717