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); }
function new_select_driver_mysql($t) { $builder = new SQLMaker('mysql', array('quote_char' => '', 'name_sep' => '.', 'new_line' => ' ')); $select = $builder->new_select(); $t->isa_ok($select, 'SQLMakerSelect'); $t->is($select->quote_char, ''); $t->is($select->name_sep, '.'); $t->is($select->new_line, " "); }