Beispiel #1
0
function select_subquery($t)
{
    $builder = new SQLMaker('sqlite', array('quote_char' => '', 'new_line' => ' '));
    do {
        $stmt1 = $builder->select_query('sakura', array('hoge', 'fuga'), array('fuga' => 'piyo', 'zun' => 'doko'));
        $t->is($stmt1->as_sql(), 'SELECT hoge, fuga FROM sakura WHERE (fuga = ?) AND (zun = ?)');
        $t->is(implode(',', $stmt1->bind()), 'piyo,doko');
    } while (false);
    do {
        $stmt2 = $builder->select_query(array($stmt1, 'stmt1'), array('foo', 'bar'), array('bar' => 'baz', 'john' => 'man'));
        $t->is($stmt2->as_sql(), 'SELECT foo, bar FROM (SELECT hoge, fuga FROM sakura WHERE (fuga = ?) AND (zun = ?)) stmt1 WHERE (bar = ?) AND (john = ?)');
        $t->is(implode(',', $stmt2->bind()), 'piyo,doko,baz,man');
    } while (false);
    do {
        $stmt3 = $builder->select_query(array($stmt2, 'stmt2'), array('baz'), array('baz' => 'bar'), array('order_by' => 'yo'));
        $t->is($stmt3->as_sql(), 'SELECT baz FROM (SELECT foo, bar FROM (SELECT hoge, fuga FROM sakura WHERE (fuga = ?) AND (zun = ?)) stmt1 WHERE (bar = ?) AND (john = ?)) stmt2 WHERE (baz = ?) ORDER BY yo');
        $t->is(implode(',', $stmt3->bind()), 'piyo,doko,baz,man,bar');
    } while (false);
    do {
        $stmt = $builder->new_select();
        $stmt->add_select('id');
        $stmt->add_where('foo', 'bar');
        $stmt->add_from($stmt, 'itself');
        $t->is($stmt->as_sql(), 'SELECT id FROM (SELECT id FROM  WHERE (foo = ?)) itself WHERE (foo = ?)');
        $t->is(implode(',', $stmt->bind()), 'bar,bar');
    } while (false);
}
Beispiel #2
0
function order_by_driver_mysql($t)
{
    $builder = new SQLMaker('mysql', array('quote_char' => '', 'new_line' => ' '));
    do {
        list($sql, $binds) = $builder->select('foo', array('*'), null, array('order_by' => 'yo'));
        $t->is($sql, 'SELECT * FROM foo ORDER BY yo');
        $t->is(implode(',', $binds), '');
    } while (false);
    do {
        list($sql, $binds) = $builder->select('foo', array('*'), array(), array('order_by' => array('yo', 'ya')));
        $t->is($sql, 'SELECT * FROM foo ORDER BY yo, ya');
        $t->is(implode(',', $binds), '');
    } while (false);
    do {
        list($sql, $binds) = $builder->select('foo', array('*'), array(), array('order_by' => array('yo' => 'desc', 'ya' => 'asc')));
        $t->is($sql, 'SELECT * FROM foo ORDER BY yo DESC, ya ASC');
        $t->is(implode(',', $binds), '');
    } while (false);
}