codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
<?php error_reporting(E_ALL | E_STRICT); define('DIR_WORKING', dirname(__FILE__)); require_once DIR_WORKING .'/system/__init__.php'; require_once DIR_WORKING .'/system/page-controller.php'; // bring in the stuff require_once DIR_WORKING .'/system/abstract-query.php'; require_once DIR_WORKING .'/system/abstract-model.php'; require_once DIR_WORKING .'/system/model-dictionary.php'; require_once DIR_WORKING .'/system/concrete-query.php'; require_once DIR_WORKING .'/system/sql-query.php'; $model = new ModelDictionary(); // test with heirarchical models $model->create('xml', struct()-> rss->model(struct()-> channel->model(struct()-> title ->string()-> description->string()-> pubDate ->string()-> item->model(struct()-> title ->string()-> description->string()-> pubDate ->string() ) ) ) ); // test with relational models $model->create('users', struct()-> id ->int()->primary_key() ->mapTo('posts', 'user_id')-> name ->string(20)-> relatesTo('posts')-> relatesTo('profiles') ); $model->create('posts', struct()-> id ->int()->primary_key()-> user_id ->int() ->mapTo('users', 'id')-> title ->string(255)-> content_id->int() ->mapTo('content', 'id')-> relatesTo('profiles', through('users'))-> relatesTo('content') ); $model->create('profiles', struct()-> user_id ->int() ->mapTo('users', 'id')-> full_name->string(30) ); $model->create('content', struct()-> id ->int()->primary_key()-> text ->string() ); $query = in('posts', 'p')->select(ALL)-> in('profiles')->select('full_name')-> in('content')->select('text')-> link('p', 'profiles')-> link('p', 'content')-> where->p('id')->eq(_)-> // underscore is a value to sub in later _and->profiles('user_id')->gt_eq->p('id'); $sql = new SqlQuery($query, $model); var_dump($sql->compile(SqlQuery::SELECT)); /* Produces this query: SELECT p. * , profiles.full_name AS full_name, content.text AS text FROM ( posts p INNER JOIN ( users t1 INNER JOIN profiles ON t1.id = profiles.user_id ) ON p.user_id = t1.id INNER JOIN content ON p.content_id = content.id ) WHERE p.id = ? AND profiles.user_id >= p.id */
Private
[
?
]
Run code
Submit