![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
OSはRedhat7.2、webサーバとしてはapache1.3.26を使用しています。
現在PHP4とPostgreSQLを使用してのwebアプリを構築中ですが、データベースへのレコード追加のことで質問があります。
テキストファイルをアップロードしデータベースに流し込むという処理をPHPから行いたいのです。
PostgreSQLに用意されているCOPYコマンドを使おうと思っていたのですがどうやらこれはPHPからは使えないらしいのです。このコマンドはPostgreSQLのスーパーユーザのみ実効可能とのことですが、DB接続時のユーザをスーパーユーザにしてもだめでした。
現在は、
echo \\\copy テーブル名 from '/tmp/$uploadfile_name' | /usr/local/pgsql/bin/psql データベース名
という文をシステム関数を使用して流すことにより処理していますが、これだとwebサーバとデータベースサーバが同じマシンじゃないとだめです。
データベースサーバとwebサーバを別のマシンにして同じような処理をするには、テキストファイルの中身を1行ずつ変数に格納して、1行ずつinsert文を発行していくしかないのでしょうか?また、この方法だと処理時間はかなりかかるのでしょうか?ちなみにテキストデータの中身は大体200行前後で一番多いときで1000行ほどです。フィールド数は70ほどです。どなたかよい方法があれば教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
済みません、なんか書き方おかしいですね。
psql -h データベースサーバー名 -c "copy テーブル名 from ファイル名; " データベース名
ですかね?
No.1
- 回答日時:
私もそういうので悩んだことがあります。
で、結局やっているのは、データベースのサーバーでftpdを動かして、Webサーバーからftpでファイルを転送して、そのファイルをcopyコマンドでテーブルにインポートするというもの。
PHPは"--enable-ftp"でconfigureするとftp関数が使えます。また、
psql -h データベースサーバー名 -c \"\
copy テーブル名 from ファイル名;
\" データベース名
ってしてやると、リモートホストから、データベースサーバー上のファイルからレコードを追加することができます。
参考になりますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- その他(コンピューター・テクノロジー) 以下の用語がわかんないので教えてください!!! ①プロトコルの変換をする装置。トランスポート層からア 1 2023/07/05 09:10
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OracleからAccessへのインポート
-
php sqlite count 列数取得
-
PHP、SQLで足し算
-
複数行のレコードを他のテーブ...
-
MDB2エラーが対応出来ません。
-
MySQLでデータベースにデータin...
-
ファイルアップロードによるPos...
-
日またぎの計算
-
PHPで[]の使い方について
-
実行時エラー3131 FROM 句の構...
-
LocalのNotesメールDBをVBAで参...
-
条件が合わなかった場合の処理...
-
PHP&MySQLでの文字列+数列の一...
-
VBAをつかってクエリの情報を抽...
-
Pro*Cの構文エラー
-
while文から抜け出せません。。。
-
ResultSetインターフェイスでの...
-
例外処理
-
エラー3011
-
insert1つの処理でもトランザ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLでデータベースにデータin...
-
変数にNULLを代入したい
-
csvをDBへ読み込んだら、NULLが...
-
ヒアドキュメントでSQLを書く事...
-
カラムにデータがあるかないか...
-
出勤表の作り方
-
phpでテーブルを作る際変数によ...
-
OracleからAccessへのインポート
-
どちらが高速ですか?
-
エクセルをMysqlに格納
-
PHPでmySQLのテーブルを作成したい
-
MDB2エラーが対応出来ません。
-
SQLで返り値が空とでる
-
PHPでいいね機能を作りたいので...
-
データをDBからひっぱってき...
-
SQL Serverからのvarchar型のデ...
-
where文について
-
PEAR Pagerを利用してデータの...
-
PHPでフォームからデータDBに書...
-
日またぎの計算
おすすめ情報