• 締切済み

PHP+PostgreSQLのエラー情報について

PostgreSQLの質問みたいなものなのですが、こちらのカテゴリーのほうが 活発だったので、こちらで質問させていただきます。 PHPでプログラミングしているのですが、DB(postgreSQL)に接続し、 SELECTやUPDATEなどした際に、エラーとなった場合(例えば、バイト数が多すぎてUPDATEできなかったなど)PHP側でエラー情報はとれないのでしょうか? またpostgreSQLのエラーログのようなものは出力されないのでしょうか? (ググってみると/var/log/pgsqlなどにある。とありますが、ログファイルはありません。。。何か設定が必要なのでしょうか?) 環境は以下の通りです。 ・OS Linux Fedora Core 4 ・PHP5.0.4 ・PostgreSQL8.0.3

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

この辺の関数を使えば良いのでは? pg_last_error pg_result_error pg_result_status pg_connection_status

参考URL:
http://www.php.net/manual/ja/ref.pgsql.php

関連するQ&A

  • PostgreSQL8.1とPHP5でwebアプリをつくりたいのに環境設定がわかりません…

     Linuxの初心者です。PostgreSQLとPHP5でwebアプリをつくりたいのですが、環境が構築できずに困っています。現時点での環境を以下に記します。 OS ; Fedora Core 6 server ; apache 2.2.3 DB ; PostgreSQL 8.1.4 言語 ; PHP 5.1.6 Fedora Core 6 をインストールする時に apache と PostgreSQL と PHP はインストールされていました。そして以下の様に設定ファイルを書き直しました(今回の質問に関わりのなさそうなものは省いていますが、なにぶん初心者のため、なにか足りないものがありましたら教えていただきたいと思います)。 ・apache /etc/httpd/conf/httpd.conf    265 ServerName localhost:80 748 AddDefaultCharset EUC-JP ・PHP /etc/php.ini 777 pgsql.allow_persistent = On 781 pgsql.auto_reset_persistent = 0 784 pgsql.max_persistent = -1 787 pgsql.max_links = -1 791 pgsql.ignore_notice = 0 795 pgsql.log_notice = 0 ・PostgreSQL /var/lib/pgsql/data/postgresql.conf       49 listen_addresses = '*' 52 port = 5432 ・PostgreSQL /var/lib/pgsql/data/pg_hba.conf local all all ident sameuser host all all 127.0.0.1/32 ident sameuser host all all ::1/128 ident sameuser host all 0.0.0.0 0.0.0.0 trust  スクリプト内で pg_connect() 関数を使って PostgreSQL に接続しようとすると、  Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?  Warning: pg_last_error() [function.pg-last-error]: No PostgreSQL link opened yet  というエラーが出てしまうのです。  調べてみたら php-pgsql という拡張モジュールがインストールされていたにも関わらずに、phpinfo() の configure に --with-pgsql が見当たらないのです。パッケージでインストールしたためにオプションが付いていなかったのでしょうか。 こちらのサイトで似たような質問があって読んだのですが、どこのディレクトリで configure をやり直したらいいのか、make clean コマンドで一回オプションを全て消さないとだめなのかがわからなくて困っています。  どなたか詳しい方がいらしたら、教えてください。  よろしくお願いいたします。

  • PHP5でpostgresqlのデータベースに接続する簡単なPHPプロ

    PHP5でpostgresqlのデータベースに接続する簡単なPHPプログラムを書きました。 ローカルホストにブラウザでアクセスすると正常に動作し、 コマンドラインで実行すると、次のエラーが発生します。 PHP Fatal error: Call to undefined function pg_connect() コマンドラインでphpのバージョンを見ると以下のとおりです。 C:\>php -v PHP 5.3.0 (cli) (built: Jun 29 2009 21:25:23) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies ブラウザで、phpinfo();を実行した際の情報には postgresqlのDBドライバがあります。 pdo_pgsql PDO Driver for PostgreSQL enabled PostgreSQL(libpq) Version 8.3.3 Module version 1.0.2 Revision $Id: pdo_pgsql.c,v 1.7.2.11.2.1.2.4 2009/03/28 01:58:49 mbeccati Exp $ pgsql PostgreSQL Support enabled PostgreSQL(libpq) Version 8.3.3 Multibyte character support enabled SSL support enabled Active Persistent Links 0 Active Links 0 Directive Local Value Master Value pgsql.allow_persistent On On pgsql.auto_reset_persistent Off Off pgsql.ignore_notice Off Off pgsql.log_notice Off Off pgsql.max_links Unlimited Unlimited pgsql.max_persistent Unlimited Unlimited テストソースです。パスワード・DB名は伏せています。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>PostgreSQLテスト</TITLE> </HEAD> <BODY> <?php $db_host = "localhost"; $db_port = 5432; $db_user = "postgres"; $db_pass = "xxxx"; $db_name = "yyyy"; // PostgreSQL 接続 if (!($cn = pg_connect("host=$db_host port=$db_port dbname=$db_name user=$db_user password=$db_pass"))) { die; } // PostgreSQL 切断 pg_close($cn); // 正常終了 print "<P>正常終了</P>"; ?> </BODY> </HTML> よろしくお願いします。

    • ベストアンサー
    • 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
  • PostgreSQLにphpから接続できない

    現在mac上にVisualBoxでCentOSをいれており その中にPostgreSQLでDBを作成しました。 phpでpg_conect、何も表示されません。 エラーメッセージもなしです。 phpの保存場所は/var/www/htmlです。 エラーもなしなので場所が悪いのでしょうか?? 初心者な質問ですいません。

  • Fedora6でPostgreSQL8.1が起動しない

    Linux超初心者です。 Fedora Core 6 カーネル2.6 を使っています。 PostgreSQLをGNOMEのパッケージマネージャでインストールしました。 バージョンは8.1.xxだと思います。 問題ですが、postmasterが起動できません。 su - postgres postmaster -i -D /var/lib/pgsql/data を実行すると FATAL: data directory "/var/lib/pgsql/data" has group or world access DETAIL: Permissions should be u=rwx (0700). と怒られます。詳しい方、ご教授願います。 chmod 777 /var/lib/pgsql/data は試しましたがダメでした。

  • PHP4 + PostgreSQL8 + Windows でPHPとPostgresの接続エラー?

    現在、Windowsで以下の環境を構築しています。 Windows XP SP2 Apache 2.0.58 PHP 4.2.2 PostgreSQL 8.1.4 インストールの最後、PHPとPostgreSQLの設定を行ったのですが、 phpinfo()で確認をしても、pgsql という項目は表示されるのに バージョンなどが表示されず、 実際PHPソースで接続してみてもエラーとなってしまいます。 Webを参考にした情報では、php.ini は、 extension_dir = "C:/php/extensions" extension=php_pgsql.dll の2行の設定で認識するという情報しか得られず、行き詰っています。 PHPのフレームワークにMojavi2を使用することになっていますので PHP5にすることはできないのです.... PHP4をPostgreSQL8では相性が悪いのでしょうか? 情報をいただければと思います。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPとPostgreSQLにおいて

    こんばんわー。質問させて下さい。 PostgreSqlでテーブルを作成しました。 ---------------------------- [test_db] id:integer name:varchar(128), number integer ---------------------------- 上記のテーブルの構成をPHPプログラム内で取得 したいのですが、ご存知の型いらっしゃいますか? ちなみにPHP4です。 とりあえず浮かんだ考えは、 一度レコードをSELECTしてそれぞれのフィールドの型と大きさを取得する方法なんですが、レコードが存在していないとできないと思います。 すみませんが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • Fedora Core 4 に PostgreSQL 8.0.0

    タイトルの通り、Fedora Core 4 に PostgreSQL 8.0.0 をインストールしようと思っているのですが、 ftp://ftp-archives.postgresql.org/pub/binary/v8.0/linux/rpms/fedora/ ここにはFedora Core 3 までの rpm しか置いていません。。。 ソースからコンパイルするしかないのでしょうか。 それともFedora Core 3 用の rpm で正しくインストールできるのでしょうか。 そもそもなぜディストリビューションごとに rpm が分かれているのかがよくわかっていないので、それについても教えて頂ければ幸いです。

  • phpのインストールについて

    phpで別サーバ(DBのみ)のpostgresqlに接続しようとした場合、接続できませんでした。 php-pgsql?かpgsql.soが無いのが原因ぽいのですが、検索してもyumでインストールとかばかりでソースからインストールした際の記述がみつけられませんでした… phpインストール時にpostgres(php-pgsql?)を有効するにはどうしたらいいのでしょうか? ちなみにpostgresqlとphpが同一サーバ内にインストールされているサーバ(現環境)からこのDBのみのサーバにTCP/IPで接続はできました。 OS:CentOS4.5(共に) apache2.2.6 php:5.2.5 postgres8.2.5 php cofigureオプション ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex よろしくお願いします。

    • ベストアンサー
    • PHP
  • 続 PostgreSQLのインストール

    fedora core1です。 postgreSQLで 一般ユーザーでログイン後 vi .bashrcで エディターを起動し export PATH=$PATH;/usr/local/pgsql/bin export MANPATH=$MANPATH:/usr/local/pgsql/man export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib 追加編集後 :wqで終了すると E45: 'readonly' オプションが設定されています (! を追加で上書き) :wq!で ".bashrc" ".bashrc" E212: 書込み用にファイルを開けません というエラーがでました。 これはどう対処したらよいでしょうか?