Database Abstraction Layer for PHP

User Tools

Site Tools


This is an old revision of the document!

ADOdb Active Record


ADOdb_Active_Record is an Object Relation Mapping (ORM) implementation using PHP. In an ORM system, the tables and rows of the database are abstracted into native PHP objects. This allows the programmer to focus more on manipulating the data and less on writing SQL queries.

The ADODB Active Method library takes advantage of all the functionality of the underlying ADOdb system, from table naming and casing control , mutiple database connections to features such as recordset caching.

Thre are a couple of simple rules that help aid development, especially when developing simple applications in a rapid development environment. Following these rules will avoid additional configuration requirement:

  • The table and column names should be a consistent case in case sensitive environments.
  • The table and column names should not include special characters or reserved words.
  • The name of the table should be a plural, based on the name of class, so for example, a class name of person, should be provided by a table name of persons, not people.
  • The unique identifier, and primary key for the record for each table should be called id

Any of the above items can be configured differently, but requires overriding default behaviours.

ADOdb_Active_Record is designed upon the principles of the ActiveRecord design pattern, which was first described by Martin Fowler. The ActiveRecord pattern has been implemented in many forms across the spectrum of programming languages. ADOdb_Active_Record attempts to represent the database as closely to native PHP objects as possible.

ADOdb_Active_Record maps a database table to a PHP class, and each instance of that class represents a table row. Relations between tables can also be defined, allowing the ADOdb_Active_Record objects to be nested.

ADOdb Active Record functions support the Record Caching functions of ADOdb

Using ADOdb Active Record

See the tutorial

Developer Reference

Active Record Methods

Method Description
getAttributeNames() Returns the names in an ADOdb_Active_Record object
save() Updates the object to the database
replace() Inserts or Updates an object
load() Loads an object from the database
find() Finds an object in the database
set() Converts an an array to an ADOdb_Active_Record object
hasMany() Deprecated General class replaced by classHasMany, tableHasMany and tableKeyHasMany
belongsTo() Deprecated General class replaced by classBelongsTo, tableBelongsTo and tableKeyBelongsTo
loadRelations() Loads a subset of data in a relationship

Static Active Record Methods

classHasMany()Sets a one-to-many Active Record relationship
tableHasMany()Sets a one-to-many Active Record table relationship
tableKeyHasMany()Sets a one-to-many Active Record table key relationship
classBelongsTo()Sets the parent of a many-to-one Active Record relationship
tableBelongsTo()Sets the parent of a many-to-one Active Record table relationship
tableKeyBelongsTo()Sets the parent of a many-to-one Active Record table key relationship
setDatabaseAdaptor() Sets the database connection for an Active Record class

Associated Connection Methods

getActiveRecords()Reads Active Records directly from a connection into an array
getActiveRecordsClass()Reads Active Records directly from a connection into objects

Class Variables

$_quoteNamesQuotes column names

Author Credit: Chris Ravenscroft

Active Records Extended

This is the original one-to-many Active Record implementation. The reason we offer both versions is that the Extended version is more powerful but more complex.

To use, just include instead of

It provides a new function called Find().It also supports loading all relationships using a single query (using joins).

Extended Active Record Methods

find()finds an ADOdb_Active_Record object in a database
v5/activerecord/activerecord_index.1449412347.txt.gz · Last modified: 2017/04/21 11:21 (external edit)