• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP + Postgres エラーのハンドリング)

PHP + Postgres エラーのハンドリング

このQ&Aのポイント
  • PHPとPostgresを使用してプログラミングしている際に起きるエラーのハンドリング方法を知りたいです。
  • Perlではエラーハンドリングができる方法がわかりましたが、PHPでの方法がわかりません。
  • 詳しい方がいらっしゃいましたら、教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • J_ANBI
  • ベストアンサー率48% (24/49)
回答No.1

 pg_connectは、データベース接続に成功するとコネクションIDを、失敗するとFALSEを返します。  これを利用すれば、データベース接続が成功したか失敗したかがわかると思います。  なお、参考のURLは、PHP4用ですが、十分参考になると思います。

参考URL:
http://www.php.net/manual/ja/ref.pgsql.php
jyamato
質問者

お礼

J_ANBIさん。 ご回答ありがとうございます。 PHP・PostgreSQLのエラー時には、 ORACLE等と違い、エラーコードは返ってこないのですね。 PostgreSQLはエラーメッセージが返って来ることを知りました。 勉強になりました。 ありがとうございます。 ・・・お返事遅くなりすみませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPからpostgresコマンド

    redhatLinux7.1にphp4.0.6をインストール(--with-pgsqlはなし)でインストールしました。プログラムから外部のpostgresデータベースを操作したいのですが、Undefined functionとなってpg_connectなどの関数が使えません。--with-pgsqlをつけてconfigureするとエラーが出たっぽいので外したんですが・・・。pgsql関数を使うにはpostgres本体もインストールしないとダメなんでしょうか??関数だけ使う方法はないでしょうか??教えてください。

  • PostgresとPHPが接続できない

    PostgreSQLとPHPがどうあがいてもつながりません。pg_connectのところで接続エラーになります。Postgresの権限、PORTの問題、いろいろ考えたのですが後は、Postgres とPHPのバージョン、ApacheのバージョンとPostgresのバージョンの問題かなと思うのですが、PHPとPostgresをお使いの方でバージョンは、どのバージョンだとつながるか教えていただけないでしょうか?環境はWindowsXPです。

  • postgresのリストアでDBを自動作成する方法

    質問させてください。 例えば、以下のコマンドを実行してpostgreSQLでリストアをするとします psql -h localhost -U postgres -d testdb この場合、testdbというDBを作成していないと、エラーになります。 DBまで自動的に作成するコマンドはありませんでしょうか。 psql、pg_restoreの両方でお聞きしたいです。

  • phpでpostgresに接続出来ません。

    早速ですが PHPでpostgresに接続しようとすると  Fatal error: Call to undefined function:     pg_connect() とエラーが出てしまいます。 何が原因なのでしょうか? phpinfo()で--with-pgsqlは確認出来ます。

  • postgres に接続できない

    PHP4とpostgrs8.0を利用しています。OSはWINDOWS2000です。 $DB_SERVER="localhost"; $Port = "5432"; $DB_NAME="test"; $DB_UID="postgres"; $DB_PASS="abc"; define("DB_CONECT","host=$DB_SERVER port=$Port dbname=$DB_NAME user=$DB_UID password=\"$DB_PASS\""); という設定で pg_connect(DB_CONECT) の接続でエラーが発生します。 Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "postgres" in c:\*****.php on line 12 なぜでしょうか? pg_hba.confの設定で host all all 127.0.0.1/32 md5 を host all all 127.0.0.1/32 trust に変更すると接続できるのですが。 それは問題ないのでしょうか? またレンタルサーバーのpostgresを利用する場合、 その設定も個人で変更できるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • あとから追加でpostgres関数

    redhatLinux7.1にphp4.0.6を「--with-pgsql」はなしでconfigureしてインストールしました。プログラムから外部のpostgresデータベースを操作したいのですが、Undefined functionとなってpg_connectなどの関数が使えません。--with-pgsqlをつけてconfigureするとエラーが出たっぽいので外したんですが・・・。pgsql関数を使うにはpostgres本体もインストールしないとダメなんでしょうか??関数だけ使う方法はないでしょうか??教えてください。

    • 締切済み
    • PHP
  • PHPとPostgreSQLがつながらない

    PHPとPostgreSQLの初心者です。PHPとPostgreSQLを 使ってプログラムを作ろうと思ってます。 開発はPC上で、PostgreとPHPサーバはLinuxマシンに あります。まず最初にPostgreのインストールですが、 Fedora Core5 に着いていたPotsgreSQL8.1.3を入れ ました。設定としては、 postgresql.confでは listen_address='localhost,192.168.1.3' としました。192.168.1.3はLinuxマシンのローカル アドレスです。 pg_hba.confではconnectionのところで host all all 192.168.1.3 255.255.255.0 tyust としました。その後 host all all 0.0.0.0 255.255.255.0 tyust とかいろいろ試してみました。 一方PHPの方はほとんど何も設定をしていません。と いうか設定方法がよくわかりません。 以上の環境で、簡単なPHPプログラムをPostgreにつなげないで実行したところ問題なく動きました。 20行くらいのPHPを書いてみましたが、特に問題はあ りませんでした。 PostgreSQLの方は、PCからSSHで入って、接続テスト 用のDBを作り、テーブルも3つ作って、データを数件 Insertしました。 いよいよPHPからDBにつなぐことになったのですが、 プログラム上では以下のように書きました。 <?php    print "こんにちは"; $conn = pg_connect ('host=192.168.1.3 port=5432 dbname=phptest user=postgres');    print "こんばんは"; if (!$conn) { print "PostgreSQLへの接続に失敗です"; exit(); } else ・ ・ して実行したところ、「こんにちは」は表示されま したが、「こんばんは」以下はは表示しませんで した。$conn の先には進んでいないようです。 当然ここに書いた以外にも設定を変えてみましたが、 つながりませんでした。よろしくお願いします。

    • 締切済み
    • PHP
  • PHPでPostgresに接続

    PHPでPostgresに接続したいのですが、  $resalt = pg_connect("dbname=dbname user=user"); で接続しようとすると、 ページを表示できません。のエラー画面が表示されてしまいます。 phpinfo()でpgsqlは確認できています。 何が原因なのでしょうか? Web Saver : Apache

  • PEAR::DBでプロセスは取得できる?

    お世話になります。 PHP5でPEAR::DBを使ってpostgresに接続しています。 $conn = pg_connect(略); を使えば $pid = pg_get_pid($conn); でバックエンドのプロセスIDが取れます。 ですが、PEAR::DBにも同じ機能を持つメソッドなどがあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 未だpostgresにアクセス出来ません。教えて下さい。

    こんにちわ。windowsXP,postgres8.2,perl5を使用して居ります。 postgresにperlからアクセスし、既存のテーブルの行に値を入れたいのですが、 valuesに数字以外の文字を指定するとpostgresに文字列が認識されません。教えて頂きたいことは、 仮に数字を6行目の$に入れると認識されるのですが、文字だと出来ないのは、どうしてでしょうか。$id='○○'と 文字を入れてみるとpostgresには1の結果だけが入ってきました。どのようにしたら良いかと、 思いprint'○○',$idとしてみました。すると下記のプロンプトでのエラーがでました。 構文が間違えていると思うので、良い方法があったら教えて下さい。宜しくお願いします。 #!c:/perl/bin/perl use DBD::Pg; use DBI; require'jcode.pl'; $dbh=DBI->connect("dbi:Pg:host=localhost;dbname=kensaku",'windws','aaaa')||die $dbh->errstr; print'9',$id;print'山田',$word1;print'd',$word2;print'w',$word3;print'c',$head;print'a',$img; @bindvalues=($id,$word1,$word2,$word3,$head,$img); &jcode::convert(*bindvalues,'euc'); my$b=(<<"EOL"); insert into kensaku(id,word1,word2,word3,head,img) values($id,$word1,$word2,$word3,$head,$img) EOL ; $sth=$dbh->prepare($b)||die $dbh->errstr; $sth->execute()||die $sth->errstr; $dbh->disconnect; $sth=$dbh->prepare($b)||die $dbh->errstr; $sth->execute()||die $sth->errstr; $dbh->disconnect; コマンドプロンプトのエラー DBD::Pg::st execute failed: ERROR: syntax error at or near "," at character 103 at test.pl line 19. ERROR: syntax error at or near "," at character 103 at test.pl line 19.

このQ&Aのポイント
  • 洗濯するまでの使用済衣類の保管方法について疑問があります。
  • 洗濯機に入れずランドリーバッグを吊るして溜める方法を試しましたが、匂いが気になります。
  • 他のご家庭ではどのように洗濯するまでの衣類を保管しているのか教えてください。
回答を見る

専門家に質問してみよう