• ベストアンサー
  • すぐに回答を!

PostgreSQLのデータ

PHPにてデータの入っていないテーブルに対して”pg_result”の処理をすると ”Warning: 0 is not a PostgresSQL result index”という 警告文が出てしまいます。 これを何とか回避したいのです。 また、最悪警告文のみ(Error文ではなく)表示させないようにできればいいのですが方法が分かりません。 お分かりになられる方おりましたら、よろしくご教授ください。 環境: RedhatLinux6.2J apache-1.3.12-0jp1 php-3.0.15_i18n_ja-0vl2 postgresql-7.0.2-2.i386

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数143
  • ありがとう数10

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

  • ベストアンサー
  • 回答No.2
  • taba
  • ベストアンサー率61% (349/567)

>一つのフィールドのみ空の場合には上記の処理では行数を拾ってしまい >データのないフィールドをpg_resultするとエラーになってしまうのです。 それは変ですね。ひょっとして設定でそういう風にもなるのかもしれません。 ちなみにちょっと調べたところ、エラー表示を抑制するには、関数の前に@をつければいいみたいです>PHP @pg_result という形ですね。試してみてください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>ちなみにちょっと調べたところ、エラー表示を抑制するには、関数の前に@をつければいいみたいです>PHP >@pg_result >という形ですね。試してみてください。 すばらしい!そんな方法があったのですね。 早速試させていただきます。 貴重な情報ありがとうございます。

その他の回答 (1)

  • 回答No.1
  • taba
  • ベストアンサー率61% (349/567)

細かい処理が分からないので、はずしていたらごめんなさい。 pg_execした後に、pg_NumRowsでテーブルの件数を確認し、その結果で処理分岐(件数がゼロなら、pg_resultしない)すればいいのではないでしょうか。 前に作った簡単なコードは、それで動いていました。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

レスありがとうございます。 >pg_execした後に、pg_NumRowsでテーブルの件数を確認し、その結果で処理分岐(件数がゼロなら、pg_resultしない)すればいいのではないでしょうか。 そうなんです、テーブルのデータがすべて空なら問題ないのですが 一つのフィールドのみ空の場合には上記の処理では行数を拾ってしまい データのないフィールドをpg_resultするとエラーになってしまうのです。 質問のしかたが分かりずらくすみません。 引き続きご教授お願いいたします。

関連するQ&A

  • postgresqlとmysqlの違い

    こんにちは。 OSはRedhatLinux7.1を使っています。 Apache_1.3.26 php-4.2.1 PostgreSQL-7.2.1 mysql-3.23.52 を使ってWebアプリケーションを作ろうとしています。 Apache+php+PostgreSQLで、 SJISで書いたphpプログラム(htmlのページの表示もSJISに指定)を使って表示されたページからPostgreSQLにデータを登録しようとするとエラーになります。 Warning: pg_exec() query failed: ERROR: Invalid EUC_JP character sequence found (0x8971) となります。 同じようにApache+php+mysqlでやってみたら登録できます。 PostgreSQLはSJISでデータを登録できないのでしょうか? どこをどのようにすればいいのかわかりません。 初歩的で申し訳ありませんがアドバイスお願いします。

  • 全角、半角の判別

    なげられてきた値が全角の場合にエラーをだしたいので PHPにて全角、半角のチェックを行いたいのですが なにか便利な関数などあるのでしょうか? また、どのような処理をすればいいのでしょうか? 単純に全角を半角に変換してくれる i18n_ja_jp_hantozenを使うことも考えましたが 全角の特殊文字などの場合に文字化けを起こす可能性もあると思い なんとかエラー表示させたく質問させていただきました。 よろしくご教授ください。 環境: RedhatLinux6.2J apache-1.3.12-0jp1 php-3.0.15_i18n_ja-0vl2 postgresql-7.0.2-2.i386

    • ベストアンサー
    • PHP
  • PostgreSQLとMySQL

    OSはRedhatLinux7.1 Apache_1.3.26 php-4.2.3 PostgreSQL-7.2.1 mysql-3.23.52 を使っています。 データベースの勉強をするために Apache+php+PostgreSQL Apache+php+MySQL で同じWebアプリケーションを作っていこうと思っています。 しかし、どのように比較し、どのように勉強していけばいいのか悩んでいます。 PostgreSQLとMySQLではphpの関数が違う事はわかったのですが。。。 よろしければアドバイスお願いします。

  • Apache+PostgreSQL+phpでWebアプリケーション

    こんにちは。 OSはRedhatLinux7.1を使っています。 Apache_1.3.26 PostgreSQL-7.2.1 php-4.2.1 でWebアプリケーションを作ろうとしています。 言語はshift_jisを使いたいと思っているのですが、 データベースに登録したデータを呼び出してWeb上に表示しようとするとeuc_jpで表示されてしまっているようで、文字化けしてしまいます。 データの登録にはwindowsのパソコンからpgaccessを使ってPostgreSQLにアクセスしています。 どのように解決すればいいか教えてください。 お願いします。

  • PostgreSQLからSQLiteへの移行について

    次のPostgreSQL用PHP関数と同機能のSQLite用PHP関数もしくは、SQLite用PHP関数の組み合わせを教えてください。 pg_fetch_result pg_affected_rows pg_result_seek

    • 締切済み
    • PHP
  • PHPでpostgresql関数が利用できない

    PHPのバージョンアップ(4.1.2→4.3.1)をしたらpotgres関連の関数が利用できなくなりました。 (Fatal error: Call to undefined function: pg_connect() など) というか、phpinfo()でもpgsqlの表示がでません。バージョンアップする前のphpinfo()でConfigureの表示は--with-pgsql=sharedだったので、バージョンアップ時も同様にしてます。 php-pgsql-4.1.2-7.3.6というのがインストールされてるのですが、 これをphp-pgsql-4.3.xxxxxといったものにしなくてはならないのか? しかし、どこにあるのかわかりません・・・ php.iniのextension=pgsql.soが有効になってること、 pgsql.soがextension ディレクトリに存在していること、 コマンドラインからPostgresSQLに接続でいること、 以上の確認と Apache・PostgresSQLの再起動は行いました。 phpからPostgresSQLを利用できるようにする方法を教えてください。 (php-pgsql-4.3.xxxxxをインストールすべきであれば、DLできる場所) 以上、宜しくお願い致します。 【環境】 OS:RedHat7.2 httpd:apache-1.3.27 PostgresSQL:7.2.4

    • 締切済み
    • PHP
  • 文字列の置換について

    こんにちは、kanpoと申します。 今回文字列の置換についての質問をさせていただきたいと思います。 やりたいことは以下のとおりです。 たとえば、あるStringデータに”あかさた#1728なはま#7586やらわ”などという 文字列が入ってるとします。 この文字列のなかから"#1728"と"#7586"を検索しそれぞれを #1728 → test #7586 → test2 と変換し最終的にもとのStringデータを ”あかさたtestなはまtest2やらわ”としたいのです。 説明が長くなってしまい申し訳ありませんがよろしくご教授ください。 環境は下記のとおりです。 RedhatLinux6.2J apache-1.3.12-0jp1.i386 php-3.0.15_i18n_ja-0vl2.i386

    • ベストアンサー
    • PHP
  • PostgreSQLで作成したデータについて

    RedHatLinux9.0にPHPとPostgresql(RPMインストール) をインストールして、WEBアプリ検証をしていますが PostgresqlのコマンドでDBを作成し、 コマンドライン上では、表示できますが、 Mozilla(ブラウザ)からは表示できません。 DB呼び出し用のスクリプトはApacheの ドキュメントルートの/var/www/htmlにおいています。 DBの保存場所が悪いのかと考えて、作成したDBを findコマンドで検索しますが、表示されません。 Postgresqlのコマンドで作成したDBファイルは どこのディレクトリに保存されているのでしょうか? MYSQLのようにMYDやFRM、MYIというようなファイルの 拡張子をつけないと検索できないのでしょうか? PostgreSQLの場合はどんな拡張子になるのでしょうか? ご存知の方は教えてください タカ

    • 締切済み
    • PHP
  • RH9へのPostgresqlのインストール

    Redhat9上に、PHP.Postgresql,Apacheをインストールし、Web上かデーターをアクセスしたいと考えております。参考書等では、FTPサイトなどからtarファイルをダウンロードしてきて、インストールを行い、PHPとApacheとが連携できるように設定も行うことが書かれております。 ところが、Redhatには、便利なRPMパッケージによるインストール方法があります。そこで、PHP.Postgresql,ApacheのRPMパッケージを使用したインストールでも、tarファイルからのインストールを行った場合、前者と同様の操作環境を作ることは可能なのでしょうか?

  • Apacheのアップグレードについて

    今RedhatLinux7.1を使っています。 この前Apache+php+PostgreSQLの環境を作ったのですが、 ApacheをApache_1.3.26にアップグレードをしたいと思っています。 アップグレードするにはどのようにすればいいのですか? 前のバージョンのものは削除するのですか? また、phpやPostgreSQLはそのままでいいのですか? 卒業研究のために最近Linuxを始めたばかりでまだわからないことばかりです。 誰か教えてください。お願いします。