<?php include_once '../adodb.inc.php'; include_once '../adodb-active-record.inc.php'; $db = NewADOConnection('mysql://root@localhost/northwind'); $db->debug = 1; ADOdb_Active_Record::SetDatabaseAdapter($db); $db->Execute("CREATE TEMPORARY TABLE `persons` (\r\n\t `id` int(10) unsigned NOT NULL auto_increment,\r\n\t `name_first` varchar(100) NOT NULL default '',\r\n\t `name_last` varchar(100) NOT NULL default '',\r\n\t `favorite_color` varchar(100) NOT NULL default '',\r\n\t PRIMARY KEY (`id`)\r\n\t ) ENGINE=MyISAM;\r\n\t "); $db->Execute("CREATE TEMPORARY TABLE `children` (\r\n\t `id` int(10) unsigned NOT NULL auto_increment,\r\n\t\t\t\t\t`person_id` int(10) unsigned NOT NULL,\r\n\t `name_first` varchar(100) NOT NULL default '',\r\n\t `name_last` varchar(100) NOT NULL default '',\r\n\t `favorite_pet` varchar(100) NOT NULL default '',\r\n\t PRIMARY KEY (`id`)\r\n\t ) ENGINE=MyISAM;\r\n\t "); $db->Execute("insert into children (person_id,name_first,name_last) values (1,'Jill','Lim')"); $db->Execute("insert into children (person_id,name_first,name_last) values (1,'Joan','Lim')"); $db->Execute("insert into children (person_id,name_first,name_last) values (1,'JAMIE','Lim')"); ADODB_Active_Record::TableHasMany('persons', 'children', 'person_id'); class person extends ADOdb_Active_Record { } $person = new person(); # $person->HasMany('children','person_id'); ## this is affects all other instances of Person $person->name_first = 'John'; $person->name_last = 'Lim'; $person->favorite_color = 'lavender'; $person->save(); // this save will perform an INSERT successfully $person2 = new person(); $person2->Load('id=1'); $c = $person2->children; if (is_array($c) && sizeof($c) == 3 && $c[0]->name_first == 'Jill' && $c[1]->name_first == 'Joan' && $c[2]->name_first == 'JAMIE') { echo "OK Loaded HasMany</br>"; } else { var_dump($c); echo "error loading hasMany should have 3 array elements Jill Joan Jamie<br>";