PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Database » DB_DataObject » Bug #3045

member function on a non-object in Generator.php on line 132

Details

Submitted2004-12-28 17:09 UTC
Fromelf at php dot net
StatusBogus
PackageDB_DataObject
PHP Version4.3.10
OSLinux
Roadmaps(Not assigned)

Comments

[2004-12-28 17:09 UTC] elf at php dot net

Description:
------------
$t will be set to NULL in a start() method.

I use MySQL 4.0.22, PHP 4.3.10, DB 1.6.8, DB_DataObject 1.7.2.

Reproduce code:
---------------
1. I used DDL.
CREATE TABLE `enq_info` (
`ei_id` int(11) NOT NULL auto_increment,
`ei_name` varchar(100) NOT NULL default '',
`ei_info` text NOT NULL,
`ei_admin_name` varchar(100) NOT NULL default '',
`ei_admin_email` varchar(100) NOT NULL default '',
`ei_admin_passwd` varchar(100) NOT NULL default '',
`ei_list_passwd` varchar(100) NOT NULL default '',
`date_create` datetime NOT NULL default '0000-00-00 00:00:00',
`date_update` datetime NOT NULL default '0000-00-00 00:00:00',
`date_public_begin` datetime default NULL,
`date_public_end` datetime default NULL,
PRIMARY KEY (`ei_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
CREATE TABLE `enq_question` (
`eq_id` int(11) NOT NULL auto_increment,
`eq_ei_id` int(11) NOT NULL default '0',
`eq_prio` int(11) NOT NULL default '0',
`eq_name` text NOT NULL,
`eq_type` char(1) NOT NULL default '',
`eq_default` text NOT NULL,
PRIMARY KEY (`eq_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
CREATE TABLE `enq_user` (
`eu_id` int(11) NOT NULL auto_increment,
`eu_name` varchar(100) NOT NULL default '',
`eu_info` text NOT NULL,
`eu_email` varchar(100) NOT NULL default '',
`eu_passwd` varchar(100) NOT NULL default '',
PRIMARY KEY (`eu_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

2.I modified example.ini from Package Example.
database = mysql://validuser:validpass@localhost/validdatabase
schema_location = /home/.../data/db/dataobjects
class_location = /home/.../libs/db/dataobjects
debug = 9

3.Run createTable.php
$ php -Cq /usr/.../createTables.php $PWD/example.ini

Expected result:
----------------
script made ini files and class files.

Actual result:
--------------
db_dataobject_generator : 0 : CREATING FOR validdatabase

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

...

I inpected.
In 121 lines.

$t = new $class; <= create instance.
$t->_database_dsn = $database; <= $t's status:object
$t->_database = $databasename; <= $t's status:object
$t->_createTableList(); <= $t's status:object
var_dump($t) <= result:NULL
(snip)
$t->$method(); <= Run NULL::generateDefinitions();!!!

[2004-12-28 17:13 UTC] elf at php dot net

Sorry!!
This bug is duplicated to Bug #3025.