- ベストアンサー
PHPでPostgreSQLのテーブルを表示できない
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の代わりに前任者が作成したテーブルに変更すると問題なく表示されます。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> ↓↓↓↓ここを加えた↓↓↓↓↓ > GRANT ALL ON tbl_pv4 TO ユーザ名; > GRANT ALL ON tbl_pv4 TO nobody; これはPHPスクリプト内に書くものではなく、pgsqlコマンドで入力する場合やSQL発行時に使うものです。 phpPgAdminをあまり使っているわけでは無いので詳しい事は分かりませんが、SQL入力のところにでも入れてみたらどうでしょうか?
その他の回答 (1)
- borazu
- ベストアンサー率53% (8/15)
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); で実行できるかもしれません。
お礼
回答ありがとうございます。 早速やてみたらできました。 ありがとうございました。
お礼
回答ありがとうございます。 >SQL入力のところにでも入れてみたらどうでしょうか? 早速やってみたらできました。 ありがとうございました。