[PHP-users 14665]PEARでクエリが実行されるときとされない時がある

sorako yamamoto sorako_yamamoto @ hotmail.com
2003年 4月 15日 (火) 10:02:26 JST


こんにちは。いつもお世話になっております。
現在、PEARを使ってDBに接続、SQLを実行し、結果を画面に表示させているのです
が、
上手くいく場合といかない場合があり、困っています。

function exec( $sQuery )
{
	$DNS = "pgsql://unix()/Test" ;
	$objCon = DB::connect( $DNS, true);	// DBへ接続

	if ( DB::isError($objCon ) ) {
		die( "接続エラー" );
	}
	$objCon->setErrorHandling( PEAR_ERROR_CALLBACK, "myDBErrorHandler" );
	$objRs = $objCon->query( $sQuery );

	while( $row = $objRs->fetchRow( DB_FETCHMODE_ASSOC ) ) {
		$aResult[] = $row ;
	}
	return $aResult ;
}
function myDBErrorHandler()
{
  print( "DBエラー" );
}


とう関数を作成し、

$aResult = exec( "select * from test_table ") ;
$cnt = count($aResult) ;
for( $i=0 ; $i < $cnt ; $i++ ) {
    print $aResult[$i]["col1"] ;
    print $aResult[$i]["col2"] ;
}

という風に、DBの結果配列を獲得し、画面(test.php)に表示させているのですが、
その際、画面に"DBエラー" が表示されることがあります。

タイミングによって、画面(test.php)にDBの結果配列が表示されることもあるのです
が、
"DBエラー"が表示されることもあります。

クエリ実行自体が失敗しているのですが、
SQL文は固定だし、エラーになったりならなかったりで、???という感じです。

また、無事に画面(test.php)が表示されたときに、
submitボタンで、他の画面(test2.php)にとび、
そこで
$aResult = exec( "select * from test_table ") ;
を実行すると、かならず"DBエラー"となります。

どなたか、同じ現象になった方、原因が分かる方いらっしゃいましたら
ご教授ください。よろしくお願いします。


postgreSQL 7.3.2
PHP        4.3.1
Apache     1.3.27





_________________________________________________________________
最新のファイナンス情報とライフプランのアドバイス MSN マネー  
http://money.msn.co.jp/  



PHP-users メーリングリストの案内