[PHP-users 24739] DB_DataObject、createTables.phpでエラー

oppara mlml @ oppara.tv
2005年 2月 27日 (日) 18:27:39 JST


こんにちは、大原と申します。

環境
mac os10.3.8
php 4.3.10
(www.entropy.chにあるパッケージを使用してインストールしました)
DB 1.6.8
DB_DataObject 1.7.2


まるごとphpを参考にして、DB_DataObjectの練習をしています。
システムとは別にpearをインストールしました。
DBの設定ファイルを用意して、createTables.phpを実行すると
以下のエラーがでて、テーブル毎のクラスが作成されません。
対処方法があれば、教えてください。よろしくお願いします。


--以下出力結果(改行してます)
$ php -Cq -d "include_path=/marugoto/share/pear"
	/marugoto/share/pear/DB/DataObject/createTables.php
	/marugoto/data/db_dataobject/auth.ini
db_dataobject_generator   : 0       : CREATING FOR dbdo

db_dataobject_generator   : 0       : calling generatedefinitions
PHP Fatal error:  Call to a member function on a non-object
	in /usr/local/php/lib/php/DB/DataObject/Generator.php on line 132

Fatal error: Call to a member function on a non-object
	in /usr/local/php/lib/php/DB/DataObject/Generator.php on line 132
--ここまで


調べてみると、DB_DataObject_Generatorの124行めあたりの
$t->_createTableList();
を実行後、$tがオブジェクトでなくなっているようで、131行めあたりの
$t->$method();
で、non-objectと怒られているようです。

DB_DataObject_Generatorに追記
$t->_database = $databasename;
	$debug = get_class( $t );echo( "DEBUG -- \$t = $debug:$t\n" );//DEBUG
$t->_createTableList();
	$debug = get_class( $t );echo( "DEBUG -- \$t = $debug:$t\n" );//DEBUG

--以下出力
db_dataobject_generator   : 0       : CREATING FOR dbdo

DEBUG -- $t = db_dataobject_generator:Object
DEBUG -- $t =
db_dataobject_generator   : 0       : calling generatedefinitions
PHP Fatal error:  Call to a member function on a non-object
	in 
/Users/oppara/Sites/omni/shake/share/pear/DB/DataObject/Generator.php 
on line 139

Fatal error: Call to a member function on a non-object
	in 
/Users/oppara/Sites/omni/shake/share/pear/DB/DataObject/Generator.php 
on line 139
--ここまで

_createTableList()を調べてみましたが、
print_r($this->tables);とすると、auth.iniのdatabaseで設定した
DBのテーブル名が入っていたのでDBには接続できているようです。






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