[PHP-users 29221] LinuxからPEARでWin版Oracle9iに接続できない
Hisashi Chiba
ch-999 @ beige.plala.or.jp
2006年 5月 17日 (水) 10:06:54 JST
千葉と申します。
今まで、Linux側でPostgreSQL7.3.2にApache、PHPで
アクセスしていましたが、訳あってWin版Oracle9iに
データベースを変更しようとしています。
現在のPHPスクリプトでは、Postgres関数をガリガリ
記述していましたが、DBサーバーを変更する際に、
PEAR DBパッケージを使ったものに変えようと考え、
テストしているのですが、Oracle に接続できず、
苦慮しています。
結果としてのエラーメッセージは
DB Error: no such database
と表示されてしまいます。
別のWindowsクライアントからSQL Plusでは
C:\>sqlplus dbuser/xxxxxx @ testdb
で接続でき、このクライアントのtransname.oraは
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb)
)
)
としています。
なお、Linux側にOracleの環境は一切無く、
また、PHPのconfigure時のオプションは
./configure --with-pgsql --with-apxs=/usr/local/apache/bin/apxs
--enable-mbstring --enable-mbstr-enc-trans --enable-mbregex
--enable-versioning --without-mysql
とphpinfo()で表示されました。
テストスクリプトは以下のものです。
<?php
require_once ("DB.php");
$ServerName = "Sv001";
$DbName = "testdb";
$TableName = "table1";
$UserName = "dbuser";
$Password = "xxxxxx";
$dsn = "oci8://".$UserName.":".$Password."@".$ServerName."/".$DbName;
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
die($db->getMessage());
}
$sql = "select * from " . $TableName . ";";
$res = $db->query($sql);
if (PEAR::isError($res)) {
die($res->getMessage());
}
while ($row = $res->fetchrow()) {
echo $row[0] . $row[1] . $row[2] . $row[3] . "<br>\n";
}
$res->free();
?>
現在の環境は次のとおりです。
Linux RedHat7.3
PHP-4.4.2
Apache-1.3.27
Windows2003Server
Oracle9i
PHP-users メーリングリストの案内