Introduction

Description

The DB_Table package provides an object oriented interface to
a database. It contains three main classes:

DB_Table - interface to and model of a
single database table.

DB_Table_Database - interface to and
model of a relational database.

DB_Table_Generator - code generation
for an existing database.

The package grew around the DB_Table class, which was written
by Paul M. Jones. The Database and Generator class were added in
releases 1.5.0RC1 and 1.5.0RC2, respectively. These manual pages
document release 1.5.0.

The properties of the core DB_Table
class contain the schema for a table, defined using portable
data types.
The class methods provides a convenient API for constructing
and submitting INSERT, UPDATE, DELETE, and SELECT SQL commands,
and for creation of a RDBMS database table from the defined schema.
Simple data type validation is provided for data to be inserted
or updated. The class provides methods to automatically generate
HTML_QuickForm input forms that match the
column definitions.

Each instance of DB_Table_Database contains
a model of relationships between tables in a database, in which each
table is represented by an instance of
DB_Table.
The autoJoin() method can automatically
construct join conditions for queries that join any number of tables.
The class also provides optional PHP validation of foreign key validity,
and optional PHP emulation of actions triggered on delete or update
of referenced rows, such as cascading deletes.

The DB_Table_Generator class may be used to
automatically generate the PHP code necessary to use the DB_Table
package as an interface to an existing database. It is used
(if at all) only during set-up of the interface for a database.

Each of these three classes is discussed in a separate tutorial
in the following manual pages.