Beispiel #1
0
function selectTests($db, $test)
{
    $query = $db->select()->from('TestTable');
    $test->out($query, "select() with no specified columns defaults to '*'");
    $query = $db->select(array('t.age', 't.firstname'))->from(array('t' => 'TestTable'));
    $test->out($query, "aliased table");
    $query = $db->select('single_column')->from('TestTable');
    $test->out($query, "single column");
    $query = $db->select(array('multiple', 'columns'))->from('TestTable');
    $test->out($query, "multiple columns");
    // mutliple where clauses
    $query = $db->select(array('multiple', 'columns'))->from('TestTable')->where('id = ? AND age>?', array(15, 33));
    $test->out($query, "multiple where clauses");
    // group by
    $query = $db->select()->from('TestTable')->group('group_col');
    $test->out($query, "group");
    // order by single
    $query = $db->select()->from('TestTable')->order('order_col1 ASC');
    $test->out($query, "order single");
    // order by multiple
    $query = $db->select()->from('TestTable')->order(array('order_col1 ASC', 'order_col2 DESC'));
    $test->out($query, "order multiple");
    // selected expression and alias
    $query = $db->select(array('productid', 'cost_plus_tax' => 'p.cost * 1.08'))->from('TestTable');
    $test->out($query, "selected expression, alias, order");
    // join
    $query = $db->select()->from(array('t' => 'TestTable'))->join('table2', 't.id = table2.id');
    $test->out($query, "join");
    // joinUsing
    $query = $db->select()->from(array('t' => 'TestTable'))->joinUsing('table2', 'id');
    $test->out($query, "joinUsing");
    // joinLeft
    $query = $db->select()->from(array('t' => 'TestTable'))->joinLeft('table2', 't.id = table2.id');
    $test->out($query, "joinLeft");
    // joinLeftUsing
    $query = $db->select()->from(array('t' => 'TestTable'))->joinLeftUsing('table2', 'id');
    $test->out($query, "joinLeftUsing");
    // where single
    $query = $db->select()->from('TestTable')->where('firstname = ?', 'John d\'Oe "le Quoted"');
    $test->out($query, "single where, quotes are escaped");
    // multiple where() calls
    $query = $db->select()->from('TestTable')->where('a = ?', 1)->where('b != ?', 2);
    $test->out($query, "multiple where() calls");
    // limit
    $query = $db->select()->from('TestTable')->limit(10, 4);
    $test->out($query, "limit(10, 4)");
    // limitPage
    $query = $db->select()->from('TestTable')->limitPage(2, 10);
    $test->out($query, "limitPage(2, 10)");
    // reset and replace part of previous query
    $query = $db->select()->from('TestTable')->limitPage(2, 10);
    $query->reset(coreDatabaseSelect::COLUMNS);
    $query->columns(array('snoopy', 'count' => 'COUNT(*)'));
    $query->limit(2008);
    $test->out($query, "reset() and columns() replacement");
    // create a select directly without passing through Database
    $query = new coreDatabaseSelect($db);
    $query->columns(array('firstname', 'age'));
    $query->from('super_clients');
    $test->out($query, "create a select directly");
}