こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPとPostgreSQL接続 (スキーマ)

いつもお世話になっております。

現在、PHP(5.3.1)とPostgreSQL(9.2)で開発をしております。
エラーが発生しており大変困っております。
こちらが発生するエラーです。
Warning: pg_exec() [function.pg-exec]: Query failed: ERROR: schema
スキーマが見つからないとのことです。

そして、以下がコードとなります。

<?php
// PostgreSQL Connect
if (!($cn = pg_connect("host=*** port=*** user=*** password=*** dbname=***"))) {
die;
}

// PostgreSQL Select
$sql = "select * from t_test.na1";
if (!($rs = pg_exec($sql))) {
die;
}

// PostgreSQL Get Records
$ct = pg_numrows($rs);
for ($i = 0; $i < $ct; $i++) {
$item = pg_fetch_array($rs, $i);
$txt = "${item[1]}";
}

// PostgreSQL Disconnect
pg_close($cn);
?>

現在のデータベースのスキーマについてですが「na1」と「public」の2つが存在しています。
試しに、na1とpublicのテーブルをまったく同じにして
SQLの部分を「select * from t_test」に変更すると「public」側のテーブルが覗けます。

しかし、SQLの部分を「select * from t_test.na1」に変更すると「スキーマが見つかりません」
というエラーが発生してしまいます。
スキーマがあるにもかかわらずこのエラーがでてしまうため原因が分からず困っております。

もしお分かりになる方いらっしゃいましたら、教えていただければと思います。
何卒よろしくお願いします。

投稿日時 - 2013-01-22 18:37:40

QNo.7905140

困ってます

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

スキーマ名とテーブル名の順序が逆じゃないでしょうか。

投稿日時 - 2013-01-22 19:38:58

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

pg_exec()ってずいぶん古くないですか?
PDOの導入など検討してみては?

投稿日時 - 2013-01-22 19:06:04

お礼

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

PDOですか・・・私自身がPHPの知識がまだ浅いので
こちらは調べてみます。
もしかすると環境が変えれない可能性があるので
できれば今のままでこのエラーを解決できればと
思います。

ありがとうございました。

投稿日時 - 2013-01-22 19:20:07

あなたにオススメの質問