※ ChatGPTを利用し、要約された質問です(原文:PHPとPostgreSQL接続 (スキーマ))
PHPとPostgreSQL接続でスキーマが見つからないエラーが発生する
このQ&Aのポイント
PHPとPostgreSQLを使用して開発を行っている際に、スキーマが見つからないエラーが発生しています。
現在のデータベースには「na1」と「public」という2つのスキーマが存在しており、na1スキーマのテーブルを参照する際にエラーが発生しています。
na1スキーマとpublicスキーマのテーブルを同じにするとエラーが発生せずに参照することができます。しかし、na1スキーマのテーブルを参照する際にはエラーが発生してしまいます。原因が分からず困っています。
いつもお世話になっております。
現在、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」に変更すると「スキーマが見つかりません」
というエラーが発生してしまいます。
スキーマがあるにもかかわらずこのエラーがでてしまうため原因が分からず困っております。
もしお分かりになる方いらっしゃいましたら、教えていただければと思います。
何卒よろしくお願いします。
お礼
ご回答ありがとうございます。 PDOですか・・・私自身がPHPの知識がまだ浅いので こちらは調べてみます。 もしかすると環境が変えれない可能性があるので できれば今のままでこのエラーを解決できればと 思います。 ありがとうございました。