DatabaseIterator
[ class tree: DatabaseIterator ] [ index: DatabaseIterator ] [ all elements ]

Database Transversal API

DatabaseIterator is a class that use new features of PHP5 (SPL, Iterators, magic methods, ...) to simplify process of iteration with a database. Using a DatabaseIterator, you can work with your database the same mode that you work with arrays.

# Create an ADOConnection
require('../libs/adodb5/adodb.inc.php');
$conn = &ADONewConnection('mysql');
$conn->PConnect('localhost', 'root', 'pass', 'database');

# Create a DatabaseIterator instance
$databaseIt = new DatabaseIterator($conn);

# List tables
foreach($databaseIt as $table) {
    echo $table->name . PHP_EOL;
}

# Set an internal SQL and list rows using RowIterator::each() method
$databaseIt['contents']->select('pk_content, title')
    ->where('title REGEXP "[[.backslash.]]"');
$foo = create_function('$item', 'echo $item->title . PHP_EOL;');
$databaseIt['contents']->each($foo);

# Get CREATE TABLE syntax for current table
echo $databaseIt['contents']->getCreateTable();
echo $databaseIt->from('contents')->getCreateTable();

# Insert new data
for($i=0; $i<10; $i++) {
    $std = new stdClass();
    $std->pk_evento = ($i+1);
    $std->fk_content_categories = 0;
    $std->summary = 'Testing '.$i;
    $std->body = 'Proba '.$i;
    $std->img = 0;
    
    $databaseIt['events']->insert($std);
}

# Alternative syntax
$row = $databaseIt['events']->newRow();
$row->insert($std);
o
$databaseIt['events']->insert($std);

# Update/delete a row
$databaseIt['events'][0]->summary = 'Hello';
$databaseIt['events'][0]->update();

$databaseIt['events'][0]->delete();


# Using adodb capabilities (transactions)
$conn->BeginTrans();
foreach($rows as $row) {
    $row->permalink = preg_replace('/[^a-zA-Z0-9_\-\/\.]/', '', $row->permalink);
    $row->update();
}
echo('Done.');

$conn->RollbackTrans(); // or $conn->CommitTrans();

This documentation was generated by phpDocumentor v1.4.2

Documentation generated on Mon, 25 May 2009 19:28:28 +0200 by phpDocumentor 1.4.2