flatfile
[ class tree: flatfile ] [ index: flatfile ] [ all elements ]
Flatfile Tutorial

Flatfile Tutorial

Example usage of flatfile class

Luke Plant

Below is an extended sample of how to use Flatfile and the related classes. The example is a table that holds 'posts' (such as a message on a message board), each with an ID, the title, the date, the author and the text of the post.

First we will set up some constants for the columns (not required, but encouraged!).

  1. define('POSTS_ID', 0);
  2. define('POSTS_TITLE', 1);
  3. define('POSTS_DATE', 2);
  4. define('POSTS_BY', 3);
  5. define('POSTS_TEXT', 4);

Now we first need to create the database object and set it up. $datadir is set to the directory where all the tables are stored.

  1. require_once('flatfile.php');
  2. $db = new Flatfile();
  3. $db->datadir = 'data/';

To get all rows from a table, use selectAll():

  1. $allrows = $db->selectAll('posts.txt');

To get a single row that is identified by a unique field, use selectUnique()

  1. $aSingleRow = $db->selectUnique('posts.txt', POSTS_ID, '1234');

To do a simple WHERE clause, e.g. get all posts from user 'joe', use selectWhere() and SimpleWhereClause:

  1. $rows = $db->selectWhere('posts.txt', new SimpleWhereClause(POSTS_BY, '=', 'joe'));

To build a composite where clause that will select rows from user 'joe' made after the first of February 2005 (assuming the date column stores UNIX timestamps):

  1. $compClause = new AndWhereClause();
  2. $compClause->add(new SimpleWhereClause(POSTS_BY, '=', 'joe', STRING_COMPARISON));
  3. $compClause->add(new SimpleWhereClause(POSTS_DATE, '>', mktime(0, 0, 0, 1, 2, 2005), INTEGER_COMPARISON);

Then using the clause, and only returning the first 5 posts, sorted in date order descending:

  1. $rows = $db->selectWhere('posts.txt', $compClause, 5, POSTS_DATE, DESCENDING);


Documentation generated on Mon, 28 Feb 2005 23:04:36 +0000 by phpDocumentor 1.3.0RC3