PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Database » DB_DataObject » Bug #547

Does't work properly with primary key on two fields

Details

Submitted2004-01-08 14:11 UTC
Frommichal at a1 dot pl
Assignedalan_k
StatusClosed
PackageDB_DataObject
PHP VersionIrrelevant
OSLinux & Windows XP
Roadmaps(Not assigned)

Comments

[2004-01-08 14:11 UTC] michal at a1 dot pl

Description:
------------
DB_DataObject 1.4 does not work properly with tables which have primary key based on two fields, such as the following one:

CREATE TABLE `page_module` (
`page_id` mediumint(8) unsigned NOT NULL default '0',
`module_id` mediumint(8) unsigned NOT NULL default '0',
`place` tinyint(3) unsigned NOT NULL default '0',
`title` varchar(50) NOT NULL default '',
`position` varchar(10) NOT NULL default 'top',
PRIMARY KEY (`page_id`,`module_id`)
) TYPE=MyISAM;

However it worked well with such tables, at least in version 1.2. Removing key definition for 'page_module' table from db.ini file would also work, but would cause other problems.

Reproduce code:
---------------
$page_module=&new Model_Page_module;
$page_module->page_id=1;
$page_module->module_id=1;
$page_module->position='top';
$page_module->insert();

Expected result:
----------------
DB_DataObject should execute the following code:
INSERT INTO page_module (page_id, module_id, position) VALUES (1,1,'top')

Actual result:
--------------
DB_DataObject executes the following code:
INSERT INTO page_module (module_id, position) VALUES (1,'top')