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"); }