dポイントプレゼントキャンペーン実施中!

phpPgAdminでテーブルを作成し、
WEBからアクセスしようとして以下のPHPファイル(1)を作成しました。
すると以下のエラーメッセージ(1)が出て
テーブルが表示されませんでした。

そこでPHPファイルを(2)のように変更したら
エラーメッセージ(2)が出てテーブルが表示されませんでした。

**********************************************************
エラーメッセージ(1)
permission denied for relation テーブル名
**********************************************************
PHPのファイル(1)
**********************************************************

<?php
$sv = "ホスト名";
$dbname = "DB名";
$user = "ユーザ名";
$pass = "パスワード";

$conn = pg_connect("host=$sv dbname=$dbname
user=$user password=$pass") or die("接続エラー");

$sql = "select * from テーブル2;";

**********************************************************
エラーメッセージ(2)
parse error, unexpected T_STRING
**********************************************************
変更後のPHPのファイル(2)
**********************************************************

<?php
$sv = "ホスト名";
$dbname = "DB名";
$user = "ユーザ名";
$pass = "パスワード";

↓↓↓↓ここを加えた↓↓↓↓↓
GRANT ALL ON tbl_pv4 TO ユーザ名;
GRANT ALL ON tbl_pv4 TO nobody;

$conn = pg_connect("host=$sv dbname=$dbname
user=$user password=$pass") or die("接続エラー");

$sql = "select * from テーブル2;";

**********************************************************

ちなみにテーブル2の代わりに前任者が作成したテーブルに変更すると問題なく表示されます。

宜しくお願い致します。

A 回答 (2件)

> ↓↓↓↓ここを加えた↓↓↓↓↓


> GRANT ALL ON tbl_pv4 TO ユーザ名;
> GRANT ALL ON tbl_pv4 TO nobody;
これはPHPスクリプト内に書くものではなく、pgsqlコマンドで入力する場合やSQL発行時に使うものです。
phpPgAdminをあまり使っているわけでは無いので詳しい事は分かりませんが、SQL入力のところにでも入れてみたらどうでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>SQL入力のところにでも入れてみたらどうでしょうか?

早速やってみたらできました。
ありがとうございました。

お礼日時:2007/10/02 14:11

PHPファイル(1)のエラーは$userではデータベースのテーブルにアクセスする権限がないエラーだと思われるので、データベースの設定を確認したほうがいいと思われます。



PHPファイル(2)のエラーは、
↓↓↓↓ここを加えた↓↓↓↓↓
GRANT ALL ON tbl_pv4 TO ユーザ名;
GRANT ALL ON tbl_pv4 TO nobody;
に問題がありそうです。PHPでは上の2行を処理できないのではないでしょうか。データベースの命令文なので、
PHPでデータベースに接続後
$sql="GRANT ALL ON tbl_pv4 TO ユーザ名;";
pg_exec($conn, $sql);
で実行できるかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速やてみたらできました。
ありがとうございました。

お礼日時:2007/10/02 14:11

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