環境はxp、apache2、php5、Postgresql8.2です。

ただ今PHPとPostgresqlの勉強をしています。

postgresに接続できなくて困っています。

<?php
$d_base = pg_connect("user='postgres' password=xxxx dbname='test'"); //データベースに接続
で、エラーになり
その内容は、

Warning: pg_connect() [function.pg-connect]:
Unable to connect to PostgreSQL server:
could not connect to server:
Connection refused (0000000000D/00000)
Is the server running on host "???"
and accepting TCP/IP connections on port 5432? in


です。

ご教示して頂けたら幸いです。

A 回答 (1件)

接続できないトラブルの原因は大きく分けて以下の3つ


1.経路が繋がっていない。線が繋がっているように見えても、論理的に切断されている場合もある。
2.接続先(今回はPostgreSQL)が接続を受け付けていない。
3.接続元(今回はPHP5)が接続しにいく設定になっていない。
PHP君は「PostgreSQL君が接続を待ち受けていないよ」と言っている。なので、2番ではないかと考えられる。PHP側でpg_connectにhost=hogehogeを記述していないので正しいマシンに接続にいっていないという3番の可能性もあるにはあるんだけど。

見るべきはPostgreSQLの設定。とりあえず
postgresql.confを開いて、
listen_addresses = '*'
という風になっているか確認。無ければ次のいずれかに設定する。
listen_addresses='127.0.0.1'
listen_addresses='<マシンのIPアドレス>'
listen_addresses='*'
上から順番に安全だ。ただし、一番上はPHPとPostgreSQLが同じマシンで動作していなければいけない。

ところで、恐らくここで詰まったという事は、これが解決しても次の段階で詰まると思われる。上のpostgresql.confと同じ場所にあるであろうpg_hba.confもあわせて確認しておきたい。とりあえず設定例だけ掲載しておくので後は検索いただきたい。
host all all 127.0.0.1/32 password sameuser
    • good
    • 0
この回答へのお礼

ご返事有り難うございました。
早速試してみます。

お礼日時:2007/11/15 15:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qなんて書いてますか? ADD ME TO MARVEL'S DO NOT EMAIL LIST C

なんて書いてますか?

ADD ME TO MARVEL'S DO NOT EMAIL LIST
CHANGE MY EMAIL PREFERENCES

By entering your email address below, you will be unsubscribed from all future commercial emails from Marvel

Confirm your email address:

Aベストアンサー

ADD ME TO MARVEL'S DO NOT EMAIL LIST
私をMarvelの「メールを送らないリスト」に加えて下さい。

CHANGE MY EMAIL PREFERENCES
私のメールの設定を変更して下さい。

By entering your email address below, you will be unsubscribed from all future commercial emails from Marvel
下の欄にあなたのメールアドレスを入力すると、今後Marvelからの商業メールの送付が全て解除されます。

Confirm your email address:
あなたのメールアドレスを(所定の欄に入力して)ご確認ください。

QPostgreSQLにphpから接続できない

現在mac上にVisualBoxでCentOSをいれており

その中にPostgreSQLでDBを作成しました。

phpでpg_conect、何も表示されません。

エラーメッセージもなしです。

phpの保存場所は/var/www/htmlです。

エラーもなしなので場所が悪いのでしょうか??

初心者な質問ですいません。

Aベストアンサー

PHPが初期設定のままであればエラーは表示されません。

エラーメッセージが /var/log/httpd/error_log に出ていると思いますので確認してみてください。

QTO DO LISTを日本語で言うと?

よくビジネスで、TO DO LISTって使いますよね。
手帳なんかにも出てきますね。

文字通り「やらなければならないことのリスト」という意味であることはわかるのですが、
そういう直訳的・説明的な訳ではない、ひとことでビシッと言い表せる定訳ってありますでしょうか?

ビジネスの現場にあまり詳しくないので、ビジネス関係の方、みなさんどんなふうに言ってらっしゃるか知りたいと思います。
よろしくお願いします。

Aベストアンサー

#1でございます。すこし補足を。


日本国内にはじめてファイロファクスの「システム手帳」が入ってきた時に、今までの日本の手帳にはないまったく新しい概念のリフィルがありました。それが「TO DO LIST」です。

やるべきことを羅列していくだけの用紙ですが、画期的だったのは「チェックマーク」を入れる部分があったことです。

完了したものにはチェックを入れて「済」ということにしておけば一目瞭然であり、チェックの入っていない項目だけを注意して見ていれば良いわけです。

こうしたTODOLISTの「忘れていることが明瞭にわかる」という機能に対して、日本語の備忘(忘れたときのための備え)という意味を重ね合わせて「備忘録」と呼んでいました。

当時のシステム手帳を使い始めた人たちが同様に感じてTODOLISTを「備忘録」と呼んでいたわけで、英訳がどうこうという話ではないのです。

QPHPでPostgreSQLを使う場合

外部参照はつけてもつけなくても同じでしょうか?
そのメリットは無いのでしょうか?

例えば
create table num_tbl
{
no int4 primary key,
str text
};

create table cont_tbl
{
no int4 references num_tbl(no),
cont text
};

の場合
references num_tbl(no)
をつけることによってPHPのコーディングにメリットはあるでしょうか?

どちらにしても
select num_tbl.str,cont_tbl.cont
from num_tbl,cont_tbl
where cont_tbl.no=num_tbl.no;
のような使い方になり何かメリットがあるようには思えないのですが

Aベストアンサー

外部キーは、参照整合性を表現するためのものであり、データベースのモデリング時に考えるべきものです。
とくにPHPのコーディングに応じて使うものでないので、その際のメリット/デメリットを考えるのは、ちょっと難しいかと。

参照整合性の意味を知っての上での質問という事であれば、update/delte cascadeが使えれば、SQL文を短くできる、とか。

QOUTLOOKより軽いスケジューラ(TO DO LIST)

現在、OUTLOOKをスケジュール管理ソフトとして使っていますがかなり重いので他のものを探しています.
SCHEDULE WATCHER がいいときいて試してみたのですが
TO DO LISTの機能で定期的な仕事を入力する機能がないので困っています.
他にお勧めはありませんでしょうか
宜しくお願いいたします.

Aベストアンサー

私も、一時期スケジューラにはまって集めた記憶があります。
そのとき、SCHEDULE WATCHERも使用しました。
いっぱい集めたのですが、Zclock98というソフトも使用しました。
このソフトは、今Zclone98と名前を変えて配布されています。
ダウンロードして試してみてはいかがでしょうか。

(「定期的な仕事」という内容がよくわかりません。もう少し具体的に表記していただけませんか?)

参考URL:http://hp.vector.co.jp/authors/VA002242/zclone98/help_html/index.html

QPostgreSQL PHP

画面で入力した文字列を登録したり、登録した内容の表示処理を作成しています。
画面で'''と入力した場合や、""を入力した場合に、うまく登録、表示できません。
これらを登録可能にするにはどうすればよいでしょうか?

よろしくお願いします。

Aベストアンサー

PostgreSQLに限らず、"(ダヴルクォート)や'(シングルクォート)はエスケープする必要があります。
これはデータベースを操作する「SQL」という言語の一般的な*仕様*です。

他にもエスケープが必要なキャラクタもありますので、以下のページを参照してみるか、検索サイトで「SQL」と「エスケープ」をキーに検索してみると良いかと思います。
http://www.rfs.jp/sb/sql/02/01.html

Qto.do.に関して

I have not choise but to do so.
のto do so.が何故to do soなのかわかりません。
to do so.には何の意味があるのでしょうか?
to.do.に対して理解できてません。

Aベストアンサー

前に書いているはずです。
まず、古いイギリス英語なら have not もありますが、
普通は I don't have any choice ~か、I have no choice です。

I have no choice but to do so. で「そうするより仕方がない」

「そうする」とは何かは前に書いているはずです。
これだけの例文なら、そういう前提での文と考えるしかありません。

QPHPからPostgreSQLにアクセスするには?

PostgreSQL-Ver8.0.2のWindows版をWindowsXP上に導入し、pgAdmin IIIなどを使いなんとか自前のユーザ名、パスワードを設定して、データベースおよびテーブルを作成しました。そしてコマンドプロンプト上では、Linux環境と似たようなコマンドラインからの入出力ができるようです。

ところが、PHPにDBアクセスのルーティンを埋込み実行するとエラーになります。おそらく、PostgreSQLサーバー起動時のパラメータ設定およびパスの通し方に問題があると考えられるのですが、どなたかご存知の方お知恵を貸してくださいませんか?

エラーメッセージは下記の通りです。
Fatal error: Call to undefined function: pg_connect() in C:\Apache2……

Aベストアンサー

コマンドプロンプト上でPostgreSQLにアクセスできてるなら、PHP側の問題かと思われます。
過去の回答が参考になるかと。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1390123

QI'd like to do の過去形は?

「~したい」というときには、"I want to do"と言いますが、polite expression では、"I'd like to do"だということを以前教わって理解していたつもりなのですが、ふと「過去形では何と言うのかな?」という疑問が湧いてきました。

「~したかった」というときの"I want to do"の過去形は、"I wanted to do"だとわかるのですが、"I'd like to do"の過去形はどうやって表せばいいのですか?

"I'd like to do"は"I would like to do"だから、"I would have liked to do"になるのでしょうか?

Aベストアンサー

ご存知と思いますがなかなか英語と日本語は一対一には対応していないため、言い方はその内容により異なってきます。

>「やっと英会話スクールに入りました。前から行きたかったんです。」
という例ならば、普通に want でかまいません。(I've wanted to learn English in ESL classとか色々)
特に丁寧さに掛けるというわけでもありません。
あと、earger とか他の言葉による表現もあります。

なぜかというと、そもそもwantが強い表現で避ける理由は、自分の欲求をあからさまに主張する表現だから、それが実現していないにもかかわらず主張することがあさましい感じがするからなのです。

ですからそれをさけて would like to ~として、自分の欲求自体を仮定法を使って願望に変えているわけです。
つまり暗黙に、[if possible,] I would like to ~ と仮定の中において話しているから、控えめな表現とされるわけです。[]内は言葉にしませんがさまざまな適当な文に置き換えられるわけです。
日本語で言えば、「出来ましたら、~したいのですが、、、」のような表現ということです。

すでに実現した出来事に対して過去の自分の気持ちを言う場合には、would like のような表現は意味を成しません(仮定ではないわけですから)、wantのもつあさましさがあるわけではありません。(すでに実現しているから)

過去にそう思っていただけで現在も実現していないのであれば、仮定法過去をつかう表現にすることでwantのもつ浅ましさを消せるということです。

実現しているのであればwantは特に問題のある表現では無いということです。

ご存知と思いますがなかなか英語と日本語は一対一には対応していないため、言い方はその内容により異なってきます。

>「やっと英会話スクールに入りました。前から行きたかったんです。」
という例ならば、普通に want でかまいません。(I've wanted to learn English in ESL classとか色々)
特に丁寧さに掛けるというわけでもありません。
あと、earger とか他の言葉による表現もあります。

なぜかというと、そもそもwantが強い表現で避ける理由は、自分の欲求をあからさまに主張する表現だから、それが...続きを読む

QPHPでPostgresqlへアクセス

OSはFedoraCore3を使用しています。
PHP5で作成したプログラムでPostgresqlへアクセスするのですが,全く応答がありません。

ブラウザで表示後、ソースを見ると
<html><body></body></html>
としか出ません。
ということはpg_connect("host=****...")がエラーの原因と考えています。
上記のプログラムの上にecho"ああ"と入力すると、ソースには「ああ」と表示があります。

PHPでFTP接続のプログラムを作成して実行するとこれは問題なく動きます。

やはり,Postgresqlの設定がおかしいのでしょうか?それともアクセスの方法が間違っているのでしょうか?

ホント困っています。よろしくお願いします。

Aベストアンサー

>Call to undefined function pg_connect()

定義されていないpg_connectという関数が呼ばれてます(使われてます)って意味ですね。

PHPでのpostgresql操作用モジュールが入っていない可能性が高いです。
ちょっとパッケージ名がそのものズバリはFedoraのは分かりませんが、pgsql.soがインストールされていないか、pgsql.soを読み込む設定になっていないのでしょう。

pgsql.soがまずあるかどうか確認してください。
なければ、インストールしてください。
あった場合、またはインストールした場合、php.iniに
extension = pgsql.so
を追記してください。

その後、apacheを再起動するなりして、php.iniの変更を適用させてください


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報